From what I have seen most comercial personal firewalls for Windows have rulesets built in to prevent port scanning.

Any good firewall that uses stateful packet filtering should be able to be configured to block port scanning.

Port scanners work in many different ways, Nmap's documentation gives a pretty good description on different portscan methods.