The OS will put apps (not services) that have no visible windows on standby and leave their memory allocated. They aren't receiving CPU cycles and the memory region isn't actively being used by anything. When a new activity is started and there's not enough unallocated memory, the OS will fully kill the apps that are in standby to reclaim that memory for the new app that is visible. So a task killer that runs resident is actively taking CPU cycles and requesting memory that would have otherwise been available to visible activities and services you are intentionally running to do what the OS would have anyway done when resource availability made it necessary. As has been mentioned apps that are correctly running resident in the background (maybe you've told them to update every x minutes) will just restart themselves and end up taking more resources from the cat/mouse game than if you just leave them be (or disable their background data sync). The only time you really need to manually kill a task is when it has somehow run afoul of the prescribed lifecycle. And you don't need a task manager that runs resident in the background to do this. Or even one that launches at timed intervals, kills stuff, and the exits. Astro includes a task manager that you can manually open to kill things. Also Froyo (not sure about 2.0.1 or 2.1) includes task management in Settings -> Applications -> Manage Applications.
So if you're using 1.6 then a non-resident task killer can be helpful for some rogue apps (which you should really just uninstall and find a functional replacement anyway), but on 2.2 that can be done with the stock firmware.