I've had my iPhone for about a week now. There are a few things about it I dislike. I mean, I thought Maddox was joking when he said there was no copy & paste functionality on the phone. Also, as of yet, there are no custom ringtones and the apple provided tones made me want to wear ear muffs every time the phone rings. Those few things aside, I love the phone. Was it worth the $600 price tag? Come see me in a month, but today I am saying yes!
So, what is one of the first things you do to a brand new and very expensive gadget? Hack it of course! I found a website called Hack The iPhone and started reading. A lot of the website is actually out of date. It says you need jailbreak & iPhoneInterface (both are CLI programs to interface with the iPhone). Both of which still work (I used them) but I found out that iPhoneInterface has been replaced with iPHUC. A great site, that is fairly current, is the iPhone dev wiki. Check here for updates on the progress of the iPhone deconstruction.
How did I hack the iPhone? Well, I got sshd running with scp/sftp-server support. I can SSH into my iPhone anytime I am connected via WiFi. This also means I can scp over custom ringtones! I use GarageBand to take an mp3 file, cut into the ringtone and export it to m4a format that the iPhone uses for it's ringtones.
The tutorial for getting sshd running is found here. Remember that iPhoneInterface was replaced with iPHUC. To build iPHUC, you will need xCode installed. If you don't have much, or any, UNIX CLI experience, than this may not be something you want to play with right now. Wait a bit, it's only a matter of time before these processes are automated. I will probably write up an updated tutorial soon and post it. If you need more help, stop by #iphone on irc.osx86.hu.
I should mention that I tried all this in OS X, I have no clue how to go about any of this on a windows box. I do know it's possible though, just not sure of the extra hurtles you need to jump. Good luck!