In January, I switched my mail server to use Kolab, which is a great solution for a single domain. With a little creativity, you can make Kolab work with virtual domains as well. (I hear a development version has this support built into it, so the next official release version ought to be very interesting.) However, there was one small glitch - it's built in spam filters were not doing a fantastic job. This is not the fault of the developers though, it has more to do with tweaking the system to meet your own needs.