1) The city does not matter. At all. Go by price and portfolio quality. Don't assume that designers in NYC and SF will automatically charge more. I used to live in a market where developers are in demand (Austin) and now I don't (Omaha). Guess what? My rates have gone up recently.
2) I would use google to search for "[US tech city] web designer" and browse portfolios online. Where [US tech city] is SF, Austin, Boston, NYC, Denver, LA, Portland, Seattle - it really doesn't matter - just pick a big city starting with the above.
I know some folks who have had some unbelievably good luck (repeatedly) using Odesk, even with US based designers. $300 for a website design kind of luck. There is a bit of a hassle in finding the good, cheap designers, but at $300, you can afford to miss a few times.
3) In my experience designers are all over the map in terms of rate, and rate is not a good indicator of quality. I've seen decent work from $25-125/hour or more, while most seem to settle around $85/hour. Don't be afraid of fixed price. It may cost more, but at least you know. Typically, it seems a basic web design - an overall theme (3 to 4 pages) will cost between $1,000 and $3,000.
4) Do not hire an agency. They are one of two things - a) very expensive b) very expensive and very bad.
The bottom line is to ask around for referrals, and review their work. I've yet to meet a designer who can come up with a wide variety of styles that look good. Usually, their work has a distinct feel to it (like an artist) and you're going to be stuck with that, so you better do your homework and like it.
And finally, my email is in my profile - I can recommend a good one in Austin.