I was wondering how Wine compares to VM when running Windows applications and what the pros and cons are for each?
It really depends of what you want to do, or what kind of Win apps you want to run into Ubuntu... There's no "better" solution.
Wine is really defined to "emulation" of a software into a linux environnement.
VM's is defined to run a full OS into another one (a kind of OS "Inception").
Games are great with Wine (just think to add Winetricks package too for DLL, DirectX and Microsoft SQL stuff). But don't even think running a DirectX 3D game into a virtual machine (or you have a hardcore computer with huge resources).
Microsoft Office suites (especially 2007 & 2010 versions) doesn't run great with Wine (app crashes) but in this case, running them into a VM can be a good option.
...and so on...
VMs doing fine but I think you may find it slower than wine. And you may need more RAM to run a whole OS in VM, but you can do almost everthing in Wine more faster than VMs do. I personally use Wine because my 1GB RAM cries when VM runs out of memory and crashes whatever I was doing in the VM (almost every time). Wine does not support Adobe Software (even installation fails).
If you are running a small windows game or app (like minesweeper ) use wine.
If you are running a more complex program, run a VM.
Wine is a windows compatibility layer. It makes windows programs think that it is running in windows. But since Windows is a closed platform, Wine cannot 100% emulate windows. Some complex program need a VM to run it.
In short: For performance, and closer integration to your current Linux desktop, use wine. For getting things working and less trouble with odd incompatibilities - use the VM. Wine is pretty good - but for productivity apps it can be frustrating when it refuses to work for something.
Qualifier: I regularly use Evernote in wine - I am determined to get it to work beautifully - but this has not been easy.
If you want to run a game or Windows application, you can use PlayOnLinux or WINE (emulation).
Not all Windows apps can be found on WINE or PlayOnLinux, in this case and if you really need to run a Windows app, or if you want to test something on a virtual machine; virtualization is helpful using VMware workstation or Virtual Box (freeware).