1. locate the file in itunes, right click and convert to AAC
2. make sure you have file extensions showing on all files.
3. locate the converted song, then change the extension from .m4a to .m4r
4. edit the song and make sure its under 30 seconds, i believe you can use itunes for this also.
5. in itunes under the ringtones tab, add it to the library then sync with your idevice ..
now in the settings you should have your song showing under custom_ringtones
now if you want songs to be over 30 seconds for what ever reason you can use ssh but you have to be jailbroken.
you can also find a bunch of apps in the app store that allow you pick songs from your music library and edit them right on your phone. to use the ringtones you have to plug the iPhone into the computer and configure it that way though... using the app will just cut out the iTunes hassle because it does get pretty annoying after a while haha.