For Wordpress 3.x you will want 256Mb RAM as an absolute minimum for reasonable performance, more if you use any heavy plugins (some say more is required for decent performance anyway). Obviously you should add more to deal with the other services you plan to run on the same machine. You might get more into less by using nginx/lighttp/cheroke instead of Apache and tweaking mySQL to the Nth degree, but I'd still say 512Mb is a sensible minimum for what you describe.
A simple mail server (assuming you just mean a basic SMTP server to receive mail and a POP3 service to connect to to draw it down to your local machines) for a couple of people would not take much resource at all and SVN repositories are also quite light on the RAM requirement.
In terms of disk space, that is a "how long is a piece of string" question. A basic Linux server install with Apache, mysql, PHP, wordpress and so on should only take a few Gb. Add a bit temporary storage, half a Gb or more to account for log growth over time, then add what you expect to need to store in Wordpress and those source control repositories (and in the mail archives if you are planning to leave the mail on the server).
I'm not sure what you'd need to add for TomCat development setup, but I would recommend you consider a separate server for that - keeping your development and production stuff on distinct (virtual) machines.
As for the choice of Ubuntu/CentOS/other: go with what you know is usually the best general purpose advice here, though make sure you pick a distro and version that will be getting security updates for some time to come (such as a recent Ubuntu LTS release rather than the latest-and-greatest build which might not be supported for as long - on a public facing server stable packages with long security support is often more useful to you than having more up-to-date (feature-wise) versions of everything).
A very good way to get a real gauge of how much of everything you need is to try it locally first: install a virtualisation solution like VirtualBox or VMWare on one of your local machine and setup a small VM to see how far you can stretch it. Remember though that I/O contention will be higher in a real hosted VM environment (the host will hopefully have a fancy array of fast drives, which is probably much nicer than your deskop's I/O subsystem, but there will be a number of VMs sharing that array) - so if your local tests show that the arrangement "runs fine but uses swap a bit" or "runs fine but most of the RAM is used rather than allocated to cache/buffers/free" then you will probably want more RAM to allow for more caching and so reduce any performance hit caused by that increased I/O contention.
For price range I suggest checking hosting specific forums like WHT as such subjective and temporally varying discussion is probably off-topic for SuperUser. Remember to make sure you keep good backups of the content on a remote server (even if the host promises to keep regular backups of the VMs) so if something drastic happens (like the host vanishing off the face of the Earth) you don't lose everything and can get back up and running easily.