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