Recommended by a friend:
iToner: No hacks. No per-ringtone fees. Unlimited custom ringtones for your iPhone.
Update for Mac Users: You can create your own ringtones for free with GarageBand, which is probably already on your computer.
Update for Windows Users: Make Your Own Ringtone for Free with iTunes