I get anywhere from a day to two days depending on usage on my EVO. I use the Tasker app to turn on WiFi when it recognizes the IP address of my home and work networks. I have it set to turn GPS on when the apps that need it are accessed. And I don't use a Task Killer but I do use Set CPU.
If you're not using Tasker, you're missing out. Big time. I never toggle anything, because I've already set up the Tasker rules to direct my phone to toggle based on my typical behavior. It's great.