Let's make a car analogy; programmers are famous for these.
Why do people buy new cars? All you really need is four wheels and an engine, so shouldn't we be able to get by an entire lifetime with one car?
We could, but we'd miss out on the improvements that are made to cars each year. Anti-lock brakes are relatively new. Traction control systems are relatively new as well. Some new vehicles are starting to incorporate emergency braking systems. Some new cars have cameras to help drivers back up safely. Some cars can automatically call for emergency assistance if a severe collision occurs. A recent video released by the Insurance Institute for Highway Safety shows a head-on collision between a 2009 Chevy Malibu and a 1959 Bel-Air. The driver of the Bel-Air would have died instantly; the Malibu driver suffered minor leg injury. 60 years of technology has made cars much safer. It's not just safety improvements either; every year more doodads like heated seats, touchscreen navigation systems, and media players are integrated in cars. My favorite new feature? The solar-powered vents in high-end Prius models that help cool the car when it's parked on hot days. Brilliant!
So, too, does each version of a Windows OS bring about improvements. Windows 7 has a better security model than Windows XP (it inherited this from Vista.) Windows 7 has a driver model that leads to a more robust experience. Windows 7 has been tweaked to use system resources even better than Vista did; all the free memory Windows XP lets sit useless is applied to tasks that make your OS run faster and better. From a developers' standpoint, you're able to use libraries like Direct2D for faster applications and DirectWrite for faster, more clear rendering of text. The Windows API Code Pack for .NET lets you access Windows 7-only features like taskbar jump lists, taskbar progress bar overlays, Libraries, the shell search APIs, and the sensor platform APIs. You can't use these features on Windows XP and thus can't test them. Using Windows 7 features lets you add neat usability enhancements to your application, and we all know that silly eye candy features usually make users prefer an application even if it has warts.
Also like cars, software has a support cycle. Windows XP is nearing complete end of support; at that point Microsoft will no longer develop security patches or bug fixes. You won't be able to find drivers for new hardware. When this happens, trying to maintain your software on Windows XP is going to be a do it yourself adventure; if your programming framework doesn't support XP you're going to have to either resort to hacks to get it installed or upgrade. If you resort to hacks, you have less assurance that the program you write works on client machines.
You don't have to upgrade. But have you ever seen that guy that rolls around town in the rusty 1981 Crown Victoria? The one that has a coat hanger for an antenna and a piece of duct tape to hold the hood down? That's what Windows 98 looks like right now, and it's what Windows XP is going to look like in half a decade or so. Applications developed to use Windows 7 features are going to make applications that are not developed for them look amateurish. Remember when XP visual styles came out? It made applications that didn't use them look dated and old because they had ugly, flat-colored, boxy buttons compared to nicer, gradient filled, rounded buttons. By now, nothing says "amateur" like an app that doesn't use visual styles. This is what will eventually happen with Windows 7 features: if you don't support them your app will stick out like a sore thumb.