My observation has been that resort hotels (the ones with restaurants in them) charge an arm and a leg because they are targeting two type of customers:
2. Convention/Conference goers
In the case of #1, you're probably not a repeat customer (or at least, repeat often enough for them to care). They want to wring every last dollar out of you while they can.
In the case of #2, you're a captive customer (the con is nearby or in this hotel, unless you have a car you're not going to wander far), and you might possibly be able to expense things.
If you were a high-roller that stayed regularly, I'll bet you they wouldn't nickle and dime you, not unless they were morons and wanted to drive you into the hands of the competition. The rest of us are just sheep to be fleeced.
For the lower cost hotels (like the Holiday Inn Expresses), where there is no built in restaurant, and they offer amenities like free wifi and free continental breakfast, they're targeting repeat business and price sensitive travelers. They often don't have the best location compared to the resort hotels (you *will* need a car), but as a consequence their expenses are probably lower. The more extreme version of this are the Extended Stay type hotels, which have kitchens and refrigerators.
The really dumpy hotels have no choice. Their plant is run down, and they may be a no-name. Unless they offer free amenities, nobody in their right mind is going to stay at their place (assuming similar nightly rents) unless there's no choice.