http://www.pokedev.com/setcpu/
You can also purchase SetCPU from the market. It allows you to adjust your processor clock speed. It has different profiles for charging, sleep/standby, and battery %. You can set a Maximum and Minimum clock speed for each profile. It will lower your CPU speed when the phone is not in use and save even more battery. From my personal experience the past few days, i have mine set at 800mhz max (stock speed) and 244mhz min. It will throttle between speeds depending on CPU load, or you can put it on Performance mode and keep it max. Then when you put it on the charger, or into sleep, it will lower the CPU to 244mhz. I've had my phone unplugged and using GPS and browser all day, and my battery is still at 90%. Great little program IMO, only $0.99