Linux, BSD, and Solaris come with IP filtering as part of the
kernel.
See the iptables tools
in Linux, the ipfw tools in BSD,
and the Solaris Management Console in Solaris.
Zone Alarm is probably the best solution, in terms of
capabilities and performance.
Plus, it's free for personal use, and quite inexpensive for
business use:
http://www.zonealarm.com/
Linksys
http://www.linksys.com/
makes some very nice NAT-based firewall products,
down to US$ 50 or less at home electronics stores.
If only more cable modem users would get these...