I don’t think all servers can be virtualized, and not all application vendors support virtualization. Contact your vendors for their support level agreements before virtualizing servers. Ones that require intensive processor and memory usage would not be good candidates. That being said probably a majority of servers can be virtualized. Depends on the usage. Here is a good article to read.
It all depends on your system load, but with lower end systems you can virtualize ever server in your environment. Now the exception here depends on your virtualization platform. When using Hyper-V in a cluster you need to have at least one domain controller which is physical otherwise the Hyper-V cluster can’t start.
In a VMware vSphere environment you will want to have the vCenter server as a physical server. If the vCenter server is a virtual server and the physical server which it is running on fails then you won’t have any management service up to begin the fail over process.
The biggest applications in your environment are your databases (SQL Server, Oracle, etc), Exchange which assuming that they are being hosted in a large enough virtual host can be virtualized without issue.
For example VMware runs their Exchange servers within a virtual enviroment with up to 1000 users per Exchange server.
Benefits – Lower cost and carbon footprint, better use of system resources (Many servers only use a small percentage of their processing power)
Risks – Security and availability, business continuity etc. (If all your servers are on one box and that box goes down you’re in trouble)