With the new release of iRingtoner and iToner, these programs allow you to add ringtones to your iPhone without any hacking (jailbreaking). However, you will notice once you install iTunes 7.4 that your ringtones are gone now.
Well, with iRingtoner (and possibly iToner, but I do not know how their program works internally), it basically does the same thing iTunes 7.4 does to put ringtones on the iPhone, therefore iTunes 7.4 overwrites the configuration files that iRingtoner (and possibly iToner) create.
Well, thankfully if you want to stick with your own ringtones and not pay for them, you can just run iRingtoner every time after you sync and it will restore your ringtones without having to re-upload them. Just open up the program and close it. That's it.
Of course when you go to sync again, your ringtones will be lost once again.
To fix this, follow these instructions:
1. Open up iTunes 7.4
2. Click Ringtones Tab under your iPhone.
3. Uncheck the 'Sync Ringtones' box.
4. Exit iTunes
5. Run iRingtoner.
6. Close iRingtoner.
7. Restart your phone.
Now all your ringtones should be back.
Now everytime you open iTunes, it won't sync your "iTunes Ringtones" and it will keep your custom free ringtones.
Now, just to let you know, you should only have to do this once as long as you don't sync Ringtones using iTunes, and also, you can't have the best of both worlds, so it seems your either stuck using your custom ringtones using iRingtoner or iToner, OR you can go the iTunes Ringtones route.
Now this won't effect people who have hacked their phone copying the ringtones to the /var/root/Library/Ringtones directory. (I haven't tested it, but it's been reported to work by other modmyi users.)
Hopefully these instructions are easy to understand and will help everyone out!