You have a couple choices- depending on the firmware version you are on and if you are jailbroken or not. iBrickr I believe can do ringtone for a stock phone. iPhoneBrowser needs a jailbroken phone WINSCP needs a jailbroken phone and BSD Subsystem and OpenSSH installed. iPhoneRingToneMaker can put ringtones on your phone, but you have to restore them every time you complete a sync.
You can make and manage ringtones right through iTunes if you've got non DRM mp3s. There should be a few tutorials posted on how to do it. Its probably the most convenient in the long term because they are treated as native ringtones and thereforee backed up and restored in the event of a full restore/upgrade.