I think the hardest part about ringtones is finding the part you want to use for the tone in a song.
I never tried any of the "ringtone dedicated" software. Since I use "Audacity" a lot for other digital recording purposes, I use it for the ringtones too. It has a nice "sillyscope" that shows the waveform of the song that you load into it. You can pull MP3 or WAV files in (audio tracks on CDs are really WAV) and of course about anything you download off the internet are MP3.
Once you get the song into Audacity, you simply highlight the part that you want to keep and delete the rest.
The trick is that most phones will only handle about 500K snatches of songs and some phones are particular about the compression. It is trial and error to cut a piece of a song and then work on the compression until the size is within the right boundary. The higher the compression, the longer the ringtone while remaining under the 500K wall.
The best thing about "Audacity" is that it is free.