Making your own iPhone ringtones in iTunes with any non-DRM protected music file is free and very easy to do.
First, you must make sure that iTunes is using the AAC encoder when importing files. For Windows users, click Edit> Preferences, then click on Import Settings under the General tab (Mac users click iTunes> Preferences). Select the AAC Encoder in the first drop down menu, and click OK.
Select the Music folder on the sidebar, Right Click your song (ctrl + Click for Mac users) and then Get Info. Now go to the Options tab and designate a Start and Stop Time for the portion of the song you wish to use. Make sure that the interval is less than 40 seconds, and that both check boxes are filled.
Return to your music library, Right Click on your song, and then select Create AAC Version. This will create a new shortened copy of the song beneath the original.
You will now need to convert this copy into an .m4r file so it can be imported into your iPhone. Right click the file and select Show in Windows Explorer (Show in Finder on Mac). Select the file, then copy and paste a new version into the same folder (Windows users can do this by pressing Ctrl + C then Ctrl + V, and Mac users by pressing Command + C then Command + V).
After pasting the new copy of the file, simply select the file and click on the file name, then change the .m4a extension to .m4r. If the .m4a extension does not appear in the filename, Windows XP users can click on Tools> Folder Options, then click the View tab and uncheck "Hide Extensions for known file types". On Windows Vista, this same option can be found under Organize> Folder and Search Options. You can also change the filename if you wish, and make sure to remove any hyphens or other symbols from the name.
Go back into iTunes and delete the first shortened AAC clip you converted. Now return to the folder where the .m4r file was created, drag the file into iTunes, and drop it onto your iPhone on the sidebar. Your ringtone is ready to go!