I'm sorry that the text in the pictures is in Swedish but I hope you understand anyway because the instructions are in English :)
First choose a song in iTunes, right click and press Info
Next: click on alternative.
Here you should change the time of the song, about 30 seconds will be good, if you want to you can change start time, that way you can have a refrain etc. as your ringtone. When done press OK.
Now right click on the song and choose create AAC-version or what it's called in English.
Another file will now appear that is shorter than the original file. Find that on your computer by right clicking and choosing view in finder if you have a Mac and Explorer if you have a PC.
Don't forget to change back the original song to its real length by unticking the box for stop time.
When you've found it change its name from .m4a to m4r. If you can't change it you have to change some settings on your computer, Google it if you don't know how.
Now you have your ringtone. Just drag it to iTunes and it will appear with your other ringtones.
Next thing to do is to syncronize it to your iPhone and then choose it as your ringtone. Voilá, piece of cake :)
Please comment if you have any questions and don't forget to check out my other guides :)