Citrix can be good to virtualise dependant on usage. most Citrix users find they have lots of CPU free on a full farm or lots of memory, my advice would be to performance manage the farm and evaluate what physical servers generally get what load, try to put cpu intensive servoryers with mem intensive servers or servers that get hit more than others (always seems to be a certain Citrix box which reveives more users than others) with the least used server. the best advice is to performance benchmark and get modus averages of perfomance and resource usage before you start. if using DRS and Host clusters ESX will do most of the work for you as it will resource manage dependant on what you set its criteria to be. The best way forward is to plan, measure then deploy on DRS and then measure again and plan with maybe re-deploy. LOL!
Hope this helps in some way
you can publish any server/desktop application on your citrix server and it performs perfectly.