Even with all these articles, a lot of estimation comes down to past experience and a little guess work. So I would suggest that you keep track of what you estimate and how long it actually took you.
Also if this is a first time customer, make sure to take your customer into account...some customers are very picky about what they like (which isn't a bad thing) and like to make changes while other customers are very laid back. So you customer can drastically change the estimate if you don't know them very well. Make sure to read through the requirements to verify that they are testable and well defined because that can affect your estimatation due to changes or redefining the requirement(s) later. Another piece to take into account is the platforms and any laws that you have to support, the more platforms and legal issues to go through the more time it will take.
Estimation is a somewhat of an inexact science, but I hope this helps! [img]images/icons/smile.gif[/img]