Web server & mailman are pretty straightforward, even with a fairly large number of domains. Once you get the first one done, you can pretty much cut & paste to generate the rest of the configs with unique DocumentRoots, or however you're structuring things. Make sure to use apache2's "conf.d" style.
The one thing that raised a red flag for me is the "mail server and accounts". Are you talking about receiving mail on your custom domain? Getting mail servers secure, dealing with SPAM & virus protection, are both huge issues. That's one place where I would never go back to self-hosted. Getting mail hosted via a Google Apps domain is the way to go for single-user cases.
Or, if you're just talking about sending mail (i.e. mailman-esque) then you can self-host this without too many issues.
Last piece of advice is make sure you're running a firewall on the server. I recommend ufw for it's simplicity (
https://help.ubuntu.com/community/UFW) If your host is Amazon AWS, you do get some firewalling included, which is also nice.
Another choice for "toy domains" is to run the VM on any other machines you happen to have, and host directly from that. That's what I do for several of my domains to save on cost when I don't really care about uptime (although the uptime is generally good on my home network connection)
Happy to answer any other admin questions offline if you'd like.
Steve