Fred Cohen is an authority & early researcher on the theory of computer viruses. see that wikipedia page for references. his 1987 paper is given credit as maybe the 1st analogy of the virus checking problem to the halting problem.
the basic idea is to create a program X that calls a virus checking subroutine with a program code as parameter. then, if the subroutine returns "is a virus", exit. if it returns "is not a virus", infect the system. such a program cannot exist by diagonalization/contradiction, passing its own code as the parameter. therefore there is no perfect virus checker.
but it would seem an easy counterargument to this statement could be, program X contains a harmful section of code, and that its irrelevant whether it is called or not-- the program is potentially harmful if it contains any "harmful section of code".
as I recall this result was published separately in a mathematical journal but cant find the reference right now.
a more recent/advanced topic is detecting polymorphic viruses that change their code in equivalent but random ways.
another promising approach that seems to avoid the halting problem issue (in a way that demonstrates abstract theoretical "no-go theorems" can be misleading or even inapplicable in practice) is to create a secure "sandbox" in which a program can run but cannot do anything harmful.
Google is building the NaCL framework that partly originated in academia and is the current leading contender for a high functional sandbox system integrated into the modern browser that still allows machine code. a provably secure software checker validates candidate programs. there are recent dramatic improvements announced.
a novel recent idea is to use graph based analysis of execution traces.
a more recent topic of virtualization has various security implications/applications as you note eg virus vendors building virtualization systems to find/detect viruses etc.
the sophistication of the recent stuxnet virus, apparently the worlds 1st state/govt-sponsored, military-agency-developed virus for cyber/espionage/sabotage purposes, has led to serious/heavy academic study, see the extensive references on wikipedia. there is a recent/new variant discovered targeting the financial industry called flame.
 An Undetectable Computer Virus David M. Chess and Steve R. White
 Trends in computer virus research Cohen, 1991
 Native Client: A Sandbox for Portable, Untrusted x86 Native Code by Yee et al 2009
 NaCl to give way to RockSalt: Computer scientists develop a tool to improve software fault isolation 2012
 Graph-based malware detection using dynamic analysis by Anderson et al
 Detection of Metamorphic and Virtualization-based
Malware using Algebraic Specification by Webster, Malcolm