I get asked that question all the time - by potential clients, students, friends and family looking for advice.
The answer is simple: What's your budget?
This is the first question I ask anyone asking for a quote.
My aim is to cut the bullshit of "Here's my price - we can't afford that - here's another price - we can't afford that". You tell me your budget, I'll tell you if I will do the project for that amount, or what can be achieved for that price.
If you don't like what I can deliver for the price, then there are no hard feelings about you seeking out another developer. In fact, I'll even recommend people who I know may take on the work for less.
The thing is, whatever your budget you can get a website for that money.
If your budget is zero you will find someone who will build you a website for zero money. Will it be good? Will it be delivered quickly? Will you be able to update it yourself? Who knows.
If your budget is 30 grand, then you will find an agency who will charge you that much for the website.
As clients, do yourself a favour and be upfront about your budget and then compare what can be delivered by different designers/developers.
As a dev, ask about budgets, value your work, be honest about what can be achieved, and give the client options - don't be afraid to part on good terms with a potential client before you even start if the budget isn't right. Taking on a job for less than your time and skill is worth only leads to problems in the longer term.
Above all, cut the bullshit.