UPDATE 2012-08-27: I wasn't able to keep up with this project and it stagnated... with multiple people interested I migrated the project to GitHub. However, in the 1+ years this project wasn't updated, it no longer works
:-( as it stands, sending messages through XMPP works still, but receiving messages does not. (I remember balpha predicted this, too) Anyone who wants to help is welcome to!
UPDATE 2010-11-14: My XMPP Bridge now has write support, albeit very crudely built. In addition, I just got the user list partially working, rich text messages now work almost flawlessly and the code is fairly stable. It was running for almosta whole week, 24 hours a day last week. (I forgot what finally crashed it, probably a message by radp, he's always causing trouble)
Next goals are to make the user list work and improve authentication, because right now it's very kludgey and poorly documented.
UPDATE 2010-10-29: I now have very, very, very basic XMPP support working, written in Ruby as an XMPP component. The code can be checked out from http://trac.sitepalette.com/soxmpp/browser/trunk and I am documenting the progress in the Trac wiki.
At the moment there is no write support but I have ideas on that. Only two rooms work, "The Tavern" (because I love that room) and the XMPP Room itself. To try it out, you'll need an XMPP server of your own which you can add a component to. After I have the code a bit more stable and functional, I'll fire it up and keep it running on my own XMPP server, and post the address of that server here (and in the chat and on the wiki)
For the most up-to-the-minute info on this project, the XMPP Room is the place to be.
I'm going to take a crack at this over the weekend, using the methods I outlined in the comment to Jeff's answer. I'll update this answer with progress as I go, and I've created an XMPP chat room to test with and discuss issues/progress/etc.
Wish me luck!