Joel on Software - Painless Software Schedules
Great article on estimating software projects.
I added a few columns to Joel's spreadsheet. Added Phase to rollup the project. Added Actual to track how long it actually took Status to track completed items, in progress, not started, etc. Comments. Added totals to the top of the report for costing & total hours.