Using CM7 122-1024 Mhz Interactive governor.
Get More Battery Life
Getting the idle drain down is the most important because the phone spends most of the time idling. During use it can pull a lot of power (expect 10-15%/hr drain when in use), but that's something that just comes with using a smartphone.
Here are my suggested settings, prioritized from what I believe to have the most impact on battery life to the least.
Turn off 3G, wifi, BT, GPS unless needed by toggling in status bar. Or use an app like Juice Defender to automatically turn them on briefly every 0.5/1/2 hours.
In CM7 settings (or quick settings app) I setup the notification bar to toggle each with 2 quick swipe actions, so it's very convenient. 3G data generally uses more power than wifi. But having both on, even when no data is transferred still drains a bit more than having them off. Also having them off prevents badly written apps from unintentionally transferring data. To get immediate msgs through, I set SMS notifications for FB messages, Google Voice SMS forwarding, or even email notification from certain people. Forwarding email to <yournumber>@vmobl.com will send it through SMS. SMS runs off the cellular phone network instead of the more battery intensive 3G data network. NOTE: MMS requires 3G data, but people could just send them via email.
Minimize running widgets & app services, instead use the mobile web site through Opera Mobile browser for example.
Instead of installing different apps like FB, traffic, weather, gasbuddy, have those sites bookmarked. Using Opera Mobile Turbo technology also saves on transferring data (it compresses webpages on remote server before sending).
Airplane mode for weak/no signal areas, sleep, & work hours
A cell phone searching for signals can drain the battery pretty quickly. Not only does it transmit at maximum power, but it does it frequently to try to re-establish a connection with a tower. So if you know you'll be in a weak/no signal area for a while, just disable it.
If you don't want to be interrupted during certain hours of the day, might as well turn off the radio too. If there are no rogue apps running the background, idling even with a cell signal should be less than 1%/hr. In the graph above, notice airplane mode & cell idle times have about the same slope.
Lowest brightness in most indoor settings. The screen uses a lot of power when on, so turn it off if you're done (instead of waiting for it to timeout).
Disable Data sync, transition animations, sounds, vibrations
Whenever the CPU does extra processing, it requires higher frequency CPU, so getting rid of the eye candy focuses the processing to just the important tasks. Audible sounds & haptic feedback use extra battery power too. Motors (for vibration) typically use a lot of power compared to audio & CPU processes.
122/245 - 1024 Mhz Interactive Governor CPU settings (Root required)
Power consumption formula is P ~ f * V^2 (where f is frequency, V is voltage). Voltage has the highest impact in the formula, so undervolting (root required) has the biggest impact, and it depends on what your processor is able to handle. Overclocking has little benefit in terms of every day use, and drains more battery.
I prefer the tried & simple Interactive governor, unlike InteractiveX and some more recent smartass governors, it doens't lock the freq to the min value when screen is off (i.e. playing music), but ramps up quickly when needed.
Remove bloatware. Don't run task killers, freeze or uninstall bad apps (Root required)
Some apps may be waking up the CPU in the background wither accidentally or without any good reason. Task killers also frequently keep the system awake to monitor what processes to kill.
Recommended apps for monitoring & checking battery usage.
Current Widget - displays & plots current usage in mA every 60 seconds.
CPU Spy - Allows monitoring of whether deep sleep state is reached when screen is off.
IncrediControl (Kernel Support Required) - Allows setting undervolt values.
BetteryBatteryStats - Allows tracking down things that keep wakelocks on the system.https://market.android.com/details?id=com.latedroid.juicedefender
StabilityTest - To test the stability of the system at certain undervolted values.
Charging a Battery
Charging through an AC socket is faster than USB. Both enter trickle charge at about 90%, and then tapers off even after 100% is reached. Here's a graph of an actual charging session off a wall socket, monitored using Current Widget. Unless you wait the extra 1-2 hours to trickle charge fully, above 90% doesn't actually hold very well (it drains quicker than below 90% if charged to 100%)
Li-Ion batteries do not like to be in extremely drained nor extremely charged states. So try to minimize them, but you may need to give it a stretch (by draining all the way down, or leave on charger an hour after 100%) to calibrate the battery meter. For everyday use, just charge it when it drops below 30%, then pull off charger after 90%. More interesting info at Battery University
Battery Meter Lags
The battery meter may not be accurate when flashing a new ROM or when there's heavy drain and it hasn't had time to re-adjust, so it lags a bit. Usually it needs a full discharge-charge cycle to become accurate.
CPU frequency & Battery (Root Required)
1st Section was running Stability Test app at 1024 Mhz, 2nd section at 245 Mhz, 3rd section at 122 Mhz. 4th section is idle at 245 Mhz, 5th section is idle at 122 Mhz. So there is a slight difference between IDLING at a certain frequency and loaded at those frequencies. Modern CPU's have a 'no-op' command that gets executed when it doesn't have anything to do which saves more power than executing instructions at the same frequency.