I haven't looked into this in a while, which means that I'm not totally familiar with current products, but I'm happy to provide some general input.
First off, I would suggest avoiding close integration between the mail and the calendaring. I see this as one of Exchange's larger design flaws, along with its proprietary datastore that makes backup and restore difficult. I'm not saying you can't have email notifications, have the same client for mail and calendaring, or even potentially have the same datastore for both, but I firmly believe that the server side should be kept separate.
From that point, though, the sky's the limit. I would personally install an IMAP server (I have the most experience with Cyrus, but there are many others that are reasonable), an LDAP server for an address book (I feel like there ought to be a read-write LDAP-based addressbook client by now, but I could be wrong), and a separate calendaring server.
The calendaring server is the hard part. There don't seem to be many out there. A quick survey suggests that the
Sun calendaring server might be okay, but you should probably do your own research on that.