There are plenty of tutorials online for configuring a web/mail server, so I’ll be brief in describing the setup. We’re moving away from Dreamhost shared hosting and Google Apps for mail and XMPP. Not that there’s anything wrong with Dreamhost, but I wanted some autonomy and grew uncomfortable relying so heavily on Google. Before you ask, yes, my tinfoil hat fits quite snugly.
The obvious first choice for operating system a BSD variant. NetBSD 5 has domU support, and so does FreeBSD if you want to muck about in -CURRENT. I went for CentOS, though, as a means to stay acquainted with Linux.
Postfix and Dovecot handle mail for both domains with Roundcube for webmail. Mail is sent through SpamAssassin via Amavisd-new. I had amavisd scanning mail with ClamAV, but I found its memory footprint to be a bit much for my little VPS. Users authenticate through Dovecot SASL using PAM.
ejabberd replaces Google Apps for XMPP and also authenticates with PAM.
Everything is accessible over IPv4 and IPv6 and handles SSL with a Comodo cert from Namecheap.
The configuration files for everything are available in gigadelic’s GitHub repo.