I use one called ringtone designer by blackout labs. You launch the app, take a song from your library in itunes, then create the tone with the part of the song you want. You then have to sync the phone with your computer and sync the file you created as a ringtone. It was 0.99 for 30 second tones. they had a free one but that only let you make 15 second tones.
*The views and opinions expressed on this forum are purely my own. Any product claim, statistic, quote, or other representation about a product or service should be verified with the manufacturer, provider, or party.