Can I virtualize all my servers or should some servers or applications not be virtualized?
In my opinion, just about every server or application can be virtualized. What you need to consider is that 1) is there any specialized hardware that is required for that application which may not be supported when virtualized 2) will your virtualized servers have the resources to perform as well as the original physical server did?
Virtualized servers can support just about any amount of CPU, RAM, Disk, and Network bandwidth that is required by an application. Additionally, virtualized servers can support special peripherals such as USB, Serial (COM), and Parallel (LPT) ports for special application needs.
Of greatest concern is the virtualization of high performance applications such as SQL and Exchange. However, I have even virtualized these applications without end users noticing. Typically, the only servers that I do not virtualize are DNS servers (which are usually Windows AD Servers) as a DNS server will be needed by the virtualized servers to function.