What is a good way to sync email across computers?
I would use IMAP to provide shared email storage. This can be done with Dovecot, Courier, or any of the other IMAP servers. The Maildir directory is usually in the users home directory. If you use TLS, you will not need to use the VPN for access. Dovecot allows various password databases, so you can use a separate password for access to your IMAP server.
You may want to configure fetchmail and/or Postfix to receive emails. Exim is a good alternative to Postfix for receiving emails to your server.
The main reason I see people voting against personal email servers is the (usual) lack of reliability/redundancy (single point of failure). If your server were to go down, mail would bounce or remain in queue. I'm actually experimenting with hosting my own mail solution using 2-3 VPSes with postfix (virtual domains). One server would be the 'master' server (top MX priority), whilst others would 'hold and forward' the mail until the main server is back online.
I found this tutorial useful for learning the basics of setting up postfix with virtual domains (this one doesn't include redundancy) -- however I would skip over the ClamAV and SpamAssassin (personally).
IMAP is a great way to make sure that multiple computers stay in sync -- you would set up each client to connect to the server to grab the latest mail (and any changes). It's beneficial if paired with web access (roundcube, etc) if you are away from your 'main' computers frequently (or that odd time), since all emails are stored on the server.
What I do is run Thunderbird on my home PC (which run Windows Vista), and use RealVNC to remote into my home computer (which has a fixed IP) from wherever I am. RealVNC has versions for Windows, Mac and Linux. Not syncing, but it allows me to check my mail remotely yet keep it in one place. If I want to print out something, RealVNC has a remote printer feature that maps the printers on your local computer to your your remote one.