Hardware and software firewalls aim to stop malicious software (and other attacks) coming in; AV software aims to prevent it, as far as possible, from taking up residence; there are various products, too well-known here for me to mention, which can be used to detect spyware/adware; software firewalls also aim to detect malicious software by detecting any network activity (e.g. unexpected outgoing traffic) it may perform. The only thing (only thing?
) missing from the puzzle is host-based intrusion detection, which aims to prevent and detect any activity by malicious software on the host, viz. inappropriate file and registry activity.
It may be worth taking a look at
Prevx , which is free for private use and quite effective - the only problem area for my money being the false positives if you leave it running while installing software.