Free & Easy Ringtones on iPhone with update

UPDATE 9/8/07: With Apple releasing iTunes 7.4.1 within hours of this process, they took away this ability and when I sync'd my iPhone, it removed my custom ringtones.  However, thanks to Joe Maller, all I had to do was to go into the folder: /itunes music/rintones/ and rename the rintones from .m4r back to .m4a and resync my iPhone and back they came.  Not sure what Apple is doing, but not too effective.

ORIGINAL 9/7/07: Thanks to TUAW for this.  Here is how I was able to do it in OSX.

I first had a couple of .mp3's that were my ringtones I made for my old Razr.  I played each of them so they would pull into iTunes.  I then went into the Importing preferences of iTunes to make sure it was set for .AAC encoding.  I then went to each of my mp3's in iTunes, right clicked, and said to convert to AAC (creates a .m4a).  Once done I removed the mp3's from iTunes.  I then went into the iTunes folder for the new AAC's and copied them out to my desktop.  I then removed all 3 from my iTunes library via iTunes.
I then selected each .m4a on my desktop, right-clicked for Get Info and changed them to .m4r
I then imported each back into iTunes.
With my iPhone connected, checked under the ringtones tab and they were all there.  I then sync'd and voila!  They are on my iPhone as my ringtone.
No cost, no command line hacking, pretty simple.