...and they probably aren't, at least as we normally use the word "running". They're loaded in memory, waiting for a trigger that would bring them into action. If the memory is needed for something else and they're not actually executing, the Android system will overwrite them with extreme prejudice by whatever needs the memory.
Your phone has a LOT of memory. The Android system is going to USE it by loading stuff it (rightly or wrongly) thinks you might use, to make response time faster. There's essentially no performance cost of doing this, and often a performance benefit. If it guessed wrong, it just loads what you actually need overtop of something that isn't being used. If it guessed right, you get instant response.
Unless you know what you're doing (and maybe not even then) trying to second guess what Android loads is just going to slow your phone down. Force something to quit that Android really wants to load and you're going to consume MORE battery when Android reloads it.
Unlike WinMo, Android has very good memory management. Don't worry about this stuff unless your phone becomes very laggy (which would be a sign of some program using lots of CPU time due to some bug or weird circumstance).