In a recent piece for Daring Fireball Jon Gruber writes:
background processing is the one factor that unites the four dock apps. Phone, Mail, Safari, and iPod all continue running in the background; no other apps, including those from Apple, do...
But what’s misleading is that several other of Apple’s built-in iPhone apps seems to run in the background. Calendar event reminders and incoming SMS messages display pop-up alerts system-wide. And the Clock app’s timers and alarms continue running even after you’ve closed the Clock app.
While the above is true, you can run applications in the background on jailbroken devices via the Backgrounder extension. According to the Google Code page for the project Backgrounder is a Mobile Substrate-based extension to iPhone/iPod Touch's SpringBoard application launcher that allows applications to run in the background (applications are normally terminated upon suspension).
Backgrounder can be run per-instance for the currently-running instance of an application, by pressing and holding the menu/home button until a message pops-up stating "Backgrounding Enabled." It can also be turned on by default by creating a preference file via instructions on the project wiki.
The developer cautions:
Also note that applications may use the suspend/resume methods to perform important tasks, such as saving preferences. If the application is not properly terminated, these tasks may never be run. For such applications, if your phone crashes or if you force power-off (by holding the power and menu/home buttons), your settings/information for that application will not be saved. Always make sure to properly shutdown such applications (by disabling backgrounding when the application is no longer needed).
Backgrounder extension is available on jailbroken devices via Cydia.