It's actually wicked easy. In iTunes, select the song you want. If its longer than 30 seconds, right click, go to options, and change start/end time until you get the 30 seconds you want. Click ok. Then right click, and select create AAC version. It will make a M4A copy of the 30 second snippet. Then go to where iTunes create the M4A file, and change the extension to M4R. Add the M4R file back to iTunes, and it will show up as a rington.
Ok, maybe not so easy once I type it all out, but not that hard to do either. All my iPhone ringtones are custom. (And most are Disney)