The question of how to price services is age-old. Web designers and developers generally charge by the project or by the hour, or use some combination of the two. I believe that whenever possible, you should charge based on the value you deliver to your clients. That value is based more on your skills, experience, and the finished product than the time you spent. Here's a brief story to illustrate my point.
Picasso was in a park when a woman asked him to draw her portrait. Picasso agreed and quickly sketched her. When he handed her the sketch, she was pleased and asked how much she owed to him. Picasso replied, "$5,000." The woman screamed, “But it took you only five minutes!” Picasso replied, "No, madam, it took me my entire life."
Picasso didn't charge for the five minutes, but for the value of the sketch, which represented his skills and the experience he gained over his lifetime. This story and more on this topic can be found in the post Picasso, Paula Scher, and the lifetime behind every second by 37Signals.
The number of billable hours in a year is fixed, so the only way to increase your income when charging hourly is to keep raising your rates. This is possible, but I think it's better to increase your income by charging for the value you deliver, and delivering more value.
Although I often use value-based pricing for projects such as building a website, I do loosely base the cost on an estimate of how many hours it will take, because that's a factor in the final project's value. I also charge by the hour for post-launch changes to websites, small jobs, and consulting. What about you? What's your pricing strategy?
Featured image from The IFC Center