It's actually pretty easy, the caveat being that you HAVE to use iTunes to do it. This method is also completed on Windows 7.
1: Using iTunes, convert your sound file to a .aac format.
2. Right click on your new .aac file and select "Show in Windows Explorer", and locate your file.
3. Rename your file, which should be in a .m4a format, changing the extension to .m4r. You will get a warning popup letting you know that changing an extension can make a file unusable. Click OK.
4. Double click your new .m4r file so that it will play in iTunes.
5. Open your "Tones" folder in iTunes and your custom ringtone should be there.
6. Plug in your phone and after iTunes recognizes it, click on the device to open the sync dialogs.
7. Click on the "Tones" header, and you should see your ringtone listed (if you have only 1 made, then there will only be 1 listed.)
8. Make sure there is a check mark in the box, and sync your phone.
You tone should now be listed under Settings|Sounds on your device, and you can assign it as your would with any ringtone.
In full disclosure, I got these instructions somewhere in the forums, but lost the link. Full credit goes to whoever posted these the first time - I wish I could credit them appropriately.
Hope this helps...