How do you manage multiple project streams?

I’m looking for a tool of some sort that will allow me to manage all the different projects that I have going on. I currently have about 10 different efforts in which I’m involved, each of which has its own context and state. I find myself switching between these projects all the time, and it is difficult to keep each one’s current state in my  head.

Do you use a tool to let you manage things like this? Specifically, I’m looking for something that would let me track my  progress through a project, keep track of emails sent and received in some way, identify what the current state of a project is, what deliverables I have and when they’re do, what blockers I have and when I expect them to be cleared. I’d also like a single summary page that lists this information in some useful, rolled-up way.

Is there anything at all out there like this? Open source is best, OSX app second best, and anything else is still greatly appreciated.

— bab