That's correct. You must jailbreak your iPhone. See the Modifications forum for more details on that.
Once you're jailbroken, and have OpenSSH installed, SSH into the phone and navigate to System/Library/Audio/UISound. You can replace sms-received1.caf - sms-received6.caf with custom notification sounds.
You can use iTunes to convert segments of songs to use as notifications. Just convert them to AIFF, and then rename the file to sms-received1.caf.
If you need more detailed instructions, search the forums as this has been addressed many times.