Using a firewall router which I have defaulted to block incoming connections (except those which I explicitly allow) and allow outgoing connections. I rather use a software firewall to monitor outgoing connections per application basis.
I had used Kerio Personal Firewall a long time, but I got fed up with it because of its high CPU usage during high-speed data transfers such as 100Mbit ethernet and even more so during FireWire transfers. Then I learned that Kerio will discontinue the product on December 31st.
So I went looking for alternatives, Sygate Personal Firewall has not been updated since October 2004 and Sygate was bought by Symantec anyway... ZoneAlarm is downright crap, Tiny Personal Firewall is everything else but tiny...
For the moment I am settled with Outpost Firewall 3.0 Trial, at first I found the interface to be horrendous, I so much preferred Kerio's way to handling things. But at least Outpost does not have insane CPU usage during high-speed data transfers. For whatever reason Outpost sometimes blocks connections that rules should already allow, a bit annoying.
If you know decent software firewalls for Win, let me know.

I know this has been discussed several times along with anti-virus softwares, but as you probably have noticed, search is borked right now...