Tasker is an automation tool for Android phones. I’ve used Android and Tasker for a couple years now for a wide variety of tasks. Simply put, this app can change settings on your phone based on practically any information or input available to the phone.
Personally, I use it to silence the ringer during church, class, etc. This can be activated by time or location. I also have it update podcasts when I connect to my access point at home. Or, turn off mobile data when the device starts, and only enable it if wifi is unavailable and certain apps are running. The list goes on and on. I have it set to enable GPS when certain apps are running. When without wifi, I have a task set to turn on 3G for one minute every half hour and have all apps to autosync (this saves a considerable amount of battery). I also use it to prevent wifi from sleeping when the screen is off if Pandora or other apps are running.
It can also be used to adjust call volume, ringtone, and availability based on caller ID, start apps and change settings when a headset is plugged in or the phone is docked, read text messages out loud in the car, and all sorts of other useful things. The application costs $6.50, but I believe it’s absolutely worth it given how much functionality it provides.
[For those interested in learning what else Tasker can do this wiki is full of How-to's.--OH ]