When the iPhone came out, things looked pretty bleak in the ringtone department. You were supposed to use the sounds that came with the iPhone, and like it. Things loosened up a bit, as Apple thought it was just fine to buy them from the iTunes store. If you already had the music you wanted to make into a ringtone, too bad, you had to buy the track again, and only if it was designated an 'official' ring tone capable song.
Then things got easier, and people started using GarageBand to do the deed, and Apple seemed to be looking the other way. Then iToner came out, and now we have PocketMac Ring tone Studio, which are utilities you can buy and create the ringtones you want from your own music. We've also reported on how to create ringtones using just iTunes.
Somewhat under the radar is Aukido. It's a website you can visit, upload one of your music tracks, cut it to a proper length, and even do a nice fade at the end so it isn't abrupt. I've tried it on a few tracks I own and it worked great. You can then download the track as an MP3, or better yet, the iPhones native M4R format. Then you drag it into your iTunes ringtone folder and you are ready to go.
The site is also crammed full of other ringtones people have created and left on the site. That could be legally murky, and I've only used my own tracks. Your mileage may vary, but Aukido is worth a look, and an upload/download.