I'm not sure what the Microsoft recommendation is going to be here (although, I'm sure they'd suggest Hyper-V over VMWare at the very least).
That being said, I run TFS2010 in a lab environment with both TFS 2010 and the database within a VirtualPC instance (under Windows Server 2003). It works, and for the type of work that I'm doing, it works pretty well.
Given what you're asking, I think a VM for the application tier should be fine. I'm generally not a fan of virtualizing database servers, so I would stick with a separate machine that can be used for your data tier.
If you do wind up virtualizing the data tier, I would still strongly recommend tying it to a physical disk instead of a virtual HD.