Budgetary estimates

It is important to create a rough budgetary estimate early and present it to the potential client. This can save you a lot of time in the future as they will know what kind of compensation you are expecting.
We have seen many times over idealists who somewhere got the notion that to develop their application can be done for a thousand bucks, probably from the movies where a "hacker" solves a problem in couple of keystrokes.
Another type of people that we are trying to avoid are more savvy businessmen who take advantage of the fact that most developers are not good at monetizing their skillset and can make them rich for very little. There is of course the third type, the "horse traiders" how get the kick from trying to get the best deal, even if that means a ruin to the developer.
The budgetary estimate sets the correct expectations, shows that your pricing is reasonable and thoughtful and that you are not here to take advantage of the customer, but at the same time you are planning to charge a fair amount for your service.

Uki's Google Java Technology blog