You should use virtualized standalone servers because:
If one server goes down it does not affect other servers (e.g. a centralized SQL server fails and brings down: CRM, TFS, Reports, Web Server)
You can just copy the VPC to another computer and it just works, no need to worry about reconfiguring the SQL connection string or web services
You can just backup the VPC
However, you should scale out your servers if: