I stopped using personal firewalls a while ago - they were too much bother compared to the security they give, and there's ways to penetrate their outbound filtering as well.
Don't get me wrong, it's nice to catch apps that phone home, it's nice to have cryptographic hashing to check that an executable that you've allowed outbound access haven't changed, etc... but that just wasn't worth it for me.
Instead, I rely on my router. Not even on firewalling in there, but simply NAT and port forwarding (which can be seen as a form of firewall, I guess). I think the only static rule I have is forwarding of the IDENT port, and uPNP for things like µTorrent, MSN, etc.
While I wouldn't enable uPNP at a company, it'ss quite fine for home use, and makes things a lot less painful. Really. On a home network, if malware gets a chance to run, you're pretty much dead and the ability of malware to do some port mapping is without consequence. Which leads me to...
Outbound filtering on a home network is also pretty useless, as nothing stops a piece of malware from using port 80 (ie, HTTP) for it's malicious deeds. If you want effective outbound filtering, you need protocol filtering as well, ports by itself doesn't help much.
I do have Windows Firewall turned on, though - to avoid the scenario where a friend visits me with an infected laptop.
So, to summarize my setup: by default, all outgoing ports are allowed, and all incoming ports are silently dropped. A few ports have static mappings, and uPNP is turned on to allow dynamic mappings. No firewalling except the most basic windows firewall. Good antivirus to keep malware from running (I like KAV, since it also does some behavioral blocking beyond the traditional antivirus heuristics).