Win7 by far.
-DX10/11 support
-DX9 programs are not an issue. It's often more like you run a game that isn't designed to use something like anti-aliasing in DX10/11 mode; you can just -dx9 the executable path and force your AA usage. Additionally, I've found nine out of ten dx9 based 3d programs run better in Win7 because of how it handles overhead.
-Special features such as themes, context menu additions, multi-window/task, services and overall system performance is quicker.
-Boot time, and service start-up quicker.
-Lots of programs support it, much like they now do with Vista(and this includes 64 bit).
-Windows Update more streamlined.
-Miscellaneous system installation packages such as .Net framework and Visual C++ install easier and with less error(also tied into Windows Update consistency, as it's based off the upgraded Windows Module Installer).
-Prepackaged database of drivers is much more in depth and of course up to date. Often people would say 'download the latest drivers' but that's for things like your motherboard, GPU, Direct X. For the little things like sound, raid drivers, usb and usb hubs, external media devices etc., it's nice that the driver package Win7 will automatically install, is often sufficient in it's date and version - saves you hunting around the web unnecessarily.
However, like with any Windows install, management of system services is key. Using Black Viper's database(plus some of your own tweaking) can make a world of difference; but it's safe to say even with standard services, Win7 is noticeably better.
I've pretty muched stopped using XP altogether, only keeping it on an older small drive connected through a USB hub, in the rare event I should need it.