It really depends on need. With a Citrix installation, each user shares the same install. Thus, you might have app conflicts or reboots. Also, the users really can't be admins. With VMs, each user gets their own machine. They can be admins, reboot it, etc. The downside is that you have to manage each VM like another computer, which can increase complexity. Also, Citrix/Terminals Services scales much better than running VMs, since it's less hardware intensive (up to 10x as many users).