I nickled-and-dimed a client on change requests, alienating that client and making myself appear less professional. ... I would have been better served by her loving me than making a little more money.
I completely agree. In fact, this is part of the reason new freelancers often regret setting their hourly rate too low. It's important that you set a high enough rate that you can throw in unbillable work now and then without destroying your earnings. The best freelancers consistently under-promise and over-deliver.
For pricing my services, I need to start high and work my way down. I generally start client conversations on my hourly rate at what I would consider a reasonable ultimate number, and then allow myself to be driven down from there — generally because the client wants a long-term contract and expects to save on my hourly based on the length of the engagement.
Constant haggling will make every new project a frustrating experience. I usually recommend setting a fair rate and then holding the line when clients ask for a discount. That's tough to do with your first few projects, but becomes easier once you're more confident about your rate and abilities.
More projects, less hourly. When starting as a consultant, I was really selling only my hours. Now Symonds & Son is a business in its own right, and I’ve hired designers and developers to help with my workload. Working with other talented individuals makes much more sense on a project basis, where I can package their (and my) hours together.
This depends on what type of projects you're looking to take on. Landing pages and presentation work will probably pay more if you charge per project (since clients won't believe you can more 10x faster than cheaper devs), but building new product features for startups is probably better at an hourly rate (since startup clients always change what they're looking to build).
If anyone is looking to get started as a freelancer/consultant or just looking to expand their existing business, take a look at our startup: http://getlambda.com.