Pros: Easy visual management of your tasks and applications without cluttering up your task bar. Enhances productivity since you can keep all related items together without having to sift through various windows.
Cons: Easy to get confused about what is running and what isn't since it may be hiding on a virtual desktop. You also may want to have a "sticky" app (like your music player) available on all desktops that may/may not be available. Can potentially slow down your system if the desktop switcher is buggy or you simply have too much stuff running.
I run 4 desktops:
Primary Desktop: Used for my main development work (web apps). I'm also on a dual monitor setup so I can have Visual Studio in one window and the browser or DB editor in the other.
Web Browsing Desktop: Open all day with my news blogs, stack overflow, and the like. Allows for a "mental break" when I go to read up on stuff since I'm not distracted by the database query running or the application building.
Mail Desktop: I have to monitor two accounts at work, so I leave a complete desktop for that.
"Secondary" Desktop: Sometimes an e-mail comes through requiring me to do something, or a co-worker has a request, and it's easier for me to jump to the secondary desktop and do a needed task without disturbing my other work.
Don't use it to replace ALT+Tabbing, since I'll have multiple apps up on a given desktop.
One important thing to note about adapting to the environment, is having a hotkey or fast method of manipulating desktops is essential. I use WIN + Numpad to switch between desktops and WIN + Number Row to move windows to a given desktop. If there is no way to interact with the desktops quickly, it becomes too much of a hassle to move your mouse down to the taskbar/system tray/"hot zone" to work with the desktops and it defeats the purpose.
Virtual Desktop of choice (not in the question but I figured I'd toss it in): Dexpot
Oddly enough, I don't use virtual desktops at home, even though I do a lot of hobby computing on the side. 8^D