Update 12am 9/8: It appears that iTunes 7.4.1 blocks the transfer of these homemade ringtones. If you haven't updated yet, you may want to load up on song snippets first...
iTunes 7.4 makes it especially easy to add and sync ringtones with your iPhone--without having to pay for a third-party installer. TUAW reader Arnold Kim passed along a link to this fabulous MacRumors post with a method attributed to "Cleverboy" and Nicholas "Drudge" Penree sent me additional instructions.
It goes basically like this: iTunes uses the m4r file extension for Ringtones. If you copy an AAC file from your library and rename it from .m4a to .m4r and then add it back to iTunes, the program reads it back in as a ringtone rather than a normal library track. You can then sync it to your iPhone. I've tested this with both an MP3 that I converted to AAC and with a track I purchased from the iTunes store. They both worked.
The secret lies in making sure the name change happens properly. This isn't a big problem on Windows. On the Mac though there are protections in place to keep you from renaming the file extension--this isn't to keep you from making ringtones. It's to keep you from hurting your files. So either do the rename in Terminal or select the file you want to rename and open the Info window. Scroll down to the Name & Extension field and change the extension to m4r there.
At this time, the m4r items do not appear in your Library. You can only see them when you select an iPhone in the sources list and then click on the Ringtones tab.
In other news, the download-free-iTunes-previews trick seems to be dead until further notice. Further notice: Okay, I got the preview trick fixed but it's..trickier. You've got to download the iTunes pages as if they were webpages and then extract the URLs from the page source. I'll write this up if there's any interest. Let me know in the comments
Update: Use this technique only for tracks you've copied from your personal CD collection.