When you run into the "incessant stream of bogus requests" pathology, ask yourself:
"Does this person represent a business that can afford to pay serious market rates, and does this person have the juice inside the company to make real decisions?"
If so: raise your rates and change your packaging so that you're capturing some of the value they're asking for. The "incessant stream of requests" phenomenon is why there are retainer arrangements.
If not: jettison the client. Say no more. Say yes less.
It all seems to come down to this. Your pipeline must be strong, all the time. When it is, you can say no more and say yes less, and still have a steady stream of good work for good clients.
So the real key is, how do you keep your pipeline that robust? Can you offer some pointers about that?
Charging by the hour is fine if they are already hosting their own site, just make sure you charge enough. When clients know they are being charged hourly you can immediately see their thought process change from "I need this useless feature X this week" to "that feature isn't worth an investment yet".
If you're taking on more work than you can handle just keep increasing your rate.