Note that *Apple* can make apps that run in the background, just not third-party developers. Apple looked at how often Windows Mobile devices crash or run out of memory or just run poorly, and the reason isn't because it's Windows: it's because people are running anything and everything on their device, and all of them are running in the background. Third party developers aren't always careful with their programs, just having more programs running can cause stability issues, and of course there's the issue of everything needing memory and taking up some of the CPU and battery power. Yet everyone blames the operating system, it's just expected that if it's Windows Mobile, it's not very stable. Apple definitely doesn't want that image for the iPhone!
The solution Apple came up with doesn't allow developers to do everything they could with true background apps, but it does allow things like chat programs and reminders/alarms and stuff to work. Basically, instead of an App on the iPhone running in the background, the developer will have a server on the internet with a program running at all times. When it needs to, that server can tell your iPhone to make a noise, display/update a number next to the App's icon, and/or display an alert message on the screen (and when you receive that you can choose to run the App if you wish). Then when you run the App, it can contact the server to get the updates. That is what is going to be available to developers starting in September.