As a project gets underway, you get the best possible indicator, namely past performance for the specific project. If you do regular re-estimation, progress monitoring and risk management (and you should, if you are a professional PM), you might not know if you are 52 or 53% done, but you will definitely know if you are ~80% done or ~50% done.
If you want sources, read McConnell's "Software estimation" and references, or if you are in a hurry, take the bite-sized blog post about "Yesterdays weather" from Fowler: http://martinfowler.com/bliki/YesterdaysWeather.html which is based on the same experience and literature.
As for projects going over initial budgets, that's a different problem from progress monitoring, though they often go hand in hand.
There is no "past performance" for most projects, because they are different enough to prohibit extrapolations.
The above holds for large IT projects and software construction of course.
For a small shop making indie games or for a web shop churning websites what you say is perfectly possible.