I just finished "Software Estimation" by Steve McConnell. This is a good book for covering exactly what the title indicates.
Steve McConnell is a well known author of software development books including "Code Complete".
This book starts with the difficulties experienced in software estimation and how hard it is indeed.
He then proceeds to cover approaches to develop more accurate estimates.
Techniques which include:
- calibration with historical data
- expert judgment
- decomposition and recomposition
- estimatino by analogy
- proxy-based estimates
Coverage of expert judgment in groups, software estimation tools, handling multiple approaches, and standardizing estimating procedures. The latter half of the book covers special issues in estimating.
All in all a good book to provide a thorough covering of software estimation.