IMHO
Disclaimer: These are my opinions, only that, nothing more, nothing less.
Here's what I've found based on the 3 firewalls I've tried out.
NPF: supposedly one of the best firewalls out there. i hated it, no matter what permissions i set, the stupid program could not seem to remember my preferences and felt it necessary to ask me over and over if i wanted to allow all different kinds of incoming tcp requests. i don't know, it got on my nerves so i got rid of NPF. on the positive side though, it was very user friendly but still allowed for advanced control.
Black Ice: supposedly "the best" firewall software out there. i beg to differ, it doesn't matter what version, it's crap.
Zone Alarm Pro: user friendly enough that someone with the most minimum knowledge of what a firewall is can successfully set it up and still have all their programs work without issue, yet it has all the advanced options that an advanced user would need for customiztion. not to mention, it does remember your preferences and if it does pop up windows on you, first off you can disable them, second they close themselves after about 15 seconds.
Sygate is supposedly another good firewall, but i know next to nothing about it.
As stated in previous posts, firewalls are really only going to stop the jacka$$e$ who think they are hackers. If someone who knows what they are doing really wants to hack your computer, they will and your firewall will do nothing to stop them, rather it will most likely goad them on. But luckily, those who really know what they are doing generally won't waste their time hacking the average joe's PC, they have bigger fish in mind (not to mention bigger challenges), that is unless it is personal, then you're screwed and the firewall still won't help you. Biggest advantage, also as stated in previous posts, a firewall saves bandwidth by blocking out internet noise.