iTunes has a hidden feature which can be used to create iPhone ringtones for free.
You can create iPhone ringtones from any music available in our iTunes media library. Here are step by step instructions on how to do it.
Steps to create iPhone ringtones
Step 1: Right click on the song and click on Get Info
Step 2: Click on the Options and change the start and stop time according to section which you would want to use as a ringtone. Make sure that that the duration is not more than 30 seconds.
Step 3: Right click on the song and click on Generate AAC version
Step 4: Drag the newly generated file outside of iTunes.
Step 5: Change the extension of the file to m4r.
Step 6: Import the file in the iTunes and it will be added to Tones section.
Step 7: Now you can delete the AAC version and change the start, stop time of the original file.
Check the above video for the detail instruction on how to create iPhone ringtones with iTunes. The video will explain all the steps in more detail.
You might not see the generate AAC version, when you right click on the song. In that case change the Import settings in iTunes -> Preferences to AAC encoder. This should enable the Generate AAC version on the contextual menu.
Once you start doing it than you will realise that there is no need to buy any tones in iTunes. You can generate as many iPhone ringtones as you want for free with iTunes.