DJabberd just did 25,200 (fully setup) connections with 97 MB of RAM before my Xen instance ran out of memory. It's now 3.4kB of overhead per connection (contrast to 30kB this morning) but there's still obvious ways to trim it down. Should be able to get it down to 2kB. The big win was when I implemented a [forget design pattern name] system where libxml parsers are shared, returned, kept on a freelist, etc.
From what Artur and I can tell, this is better than most/all the other jabber servers out there.
It means with 1GB of ram we can do 300k connections per process. (8GB of RAM boxes, 2x 2x core)
<3 epoll.