Ideally I'd have four dedicated monitors - but on my one work monitor I'd settle for four virtual desktops that I can cycle through similar to alt+tab.
Only problem is that this has become so ingrained that I keep doing it on computers without this setup!
Hide away your email and other interruptions until you're explicitly ready to go look at them. Out of sight, out of mind.
Multiple projects. I have a legacy app I support and a new-development project I spend most of my time on. I can spread the work for each of these out across multiple windows on multiple desktops, and switch between them when I'm ready to context-switch. When I do, everything is laid out exactly the way I want it.
I'm back on Windows for now, but great multiple desktop support is the thing I miss most from a Linux desktop.
I use desktops to partition stuff so there are manageable amounts of Windows at a time.