Oh boy! Everyone has their preferences. I like Sygate the best. Very user friendly, simple, configurable, and secure. Sygate you basically install and forget except to allow what you need to. If you want to play around with a firewall Zone Alarm requires a lot of attention but works well if you get it configured right. You do not need to buy a firewall - the free ones are sufficient. You can test your firewall at Shields Up.
I use Kerio Personal Firewall which is a wonderful simple but powerful firewall with built in ad-blocking and other code blocking features.
__________________
Pentium 4 2.41Ghz
Geforce FX 5200 128MB VRAM
768 MB DDR RAM
Windows XP Professional Service Pack 1
Sharp LCD Flatscreen 17"
Custom iCute Electrix Blue Casing
LiteOn DVD-Rom
Imation CD-RW 52x24x52x
Dual Western Digital 80GB Hard Drives.
i have a router with a built in firewall. It doesn't use up any resources because its hardware and it provides sufficient protection.
__________________
Pentium 4 2.4B @ 2.7ghz
ASUS P4P800 SE
768 DDR Ram (2700)
WD 80gig harddrive 8mb cache
EVGA Geforce FX 5700 Ultra
SoundBlaster Audigy
Pioneer DVR-106
Windows XP Pro Service Pack 1
It's like a dentist being asked by a parent, "What's the best toothpaste for kids?" The dentist's answer is, "Whichever toothpaste they'll use."
There are several good firewalls (as already mentioned). Pick one that you're comfortable with, that doesn't cause problems with your internet use, that doesn't require alot of attention and one that you will use religiously. I use Norton Internet Security 2004, which comes with a firewall.
I'll stray a bit from the rest of these answers and say that I've never had a good experience with software firewalls. They get in the way of many things and if one of them breaks your whole machine is subject to getting buggered. We've used several different ones at my work, and removed them all for lack of stability and security.
My suggestion would be to look for sales and pick up a linksys or netgear router, they do the job as well as any software firewall.
P.S. Software firewalls tend to return a lot of "false positives" Your bound to get warning several times a day warning of this stopped attack or that, but most of it is benign, standard internet traffic.