The method of virus detection that has not been mentioned is "behavioural". This method looks at what an unknown is about to do (e.g. write to the Registry). Some sophisticated methods will put the suspected item in a "sandbox", let it run, and see what it tries to do.

The main point is that IMHO you cannot rely on a firewall and AV alone.....you need secondary defences.

http://www.winpatrol.com
http://www.diamondcs.com.au

Try Win Patrol and Registry Prot

Good Luck