Q:

What are (or how do I use) the power saving options of the Arduino to extend battery life?

For solar & battery powered projects, decreasing power consumption is a necessity.
I know a little bit about using a timer and interrupt to put the microcontroller into sleep when it isn't doing anything.
I have also read that you can disable some peripherals to further save power.
Here is a page explaining these: Power Saving Techniques
My question:

What other techniques are there to save power?
Are there any libraries that make using these AVR features easier?

A:

Note: I wanted to point out that, even though my answer was accepted, the reader (you) should really read Anindo's answer first if you really want to save energy with any Arduino board. Once you address those items in your design, then you should read my answer and worry about how to set the MCU into low power mode.
Having said that, there are several techniques to make an Arduino save power. I'll list a few and then point you to a page that explains them all in more detail.

While the controller isn't doing anything important (between one read of a sensor and the next, for example), you can put the controller into one of the sleep modes below, with the command set_sleep_mode (SLEEP_MODE_PWR_DOWN). Next to each mode is the approximate power consumption of each mode. 

SLEEP_MODE_IDLE: 15 mA
SLEEP_MODE_ADC: 6.5 mA
SLEEP_MODE_PWR_SAVE: 1.62 mA
SLEEP_MODE_EXT_STANDBY: 1.62 mA
SLEEP_MODE_STANDBY : 0.84 mA
SLEEP_MODE_PWR_DOWN : 0.36 mA

Disable brown-out detection (the circuitry that turns off the controller when low voltage is detected).
Turn off ADC (analog to digita conversion)
Use the internal clock

Then, when you put the controller to sleep, you need to use one or more mechanisms below to wake up the controller and do something with it:

Wake up with a signal
Wake up with a timer

This is a summary I made from -

Nick Gammon's article: Power saving techniques for microprocessors.

That article applies mostly to ATmega328P, but the technique applies to other Arduino compatible controllers as well. As TheDoctor said well, you will need to check the datashet to make sure your controller suports any of those techniques and how to do it more precisely.

A:

Realistically, the biggest power waster on an Arduino board is the linear voltage regulator on it. 

As long as the microcontroller on the board, the LEDs, or any other peripherals, draw current, the linear regulator wastes power equal to difference between supply and board voltage x current drawn.
So, a first fix would be to disconnect the power indicator LED on the board, and not use any of the other LEDs as far as possible.
Second, supply the board with as low a voltage as possible that is just sufficient to power the on-board regulator.
On the original designs, the voltage regulators used do not boast low quiescent current. This means even with nothing drawing power within the board, the regulator itself wastes a fair bit of power all the time it is on. 
An easy fix is to replace the on-board regulator with an LDO (low drop-out linear regulator) rated for extremely low quiescent current. Parametric searches on various vendor sites will yield likely substitutes.
Even with the above steps, the Arduino board does not provide a mechanism to set the LDO into low-power mode, if the LDO chosen supports this. Power efficient designs typically use a "sleep mode" pin on voltage regulators to save a fair bit of energy - not an option here.

Even with all possible power saving modes and tricks applied at the microcontroller level, the Arduino simply is not designed to be an ultra-low-power device out of the box. Having experimented with several non-trivial applications, I have found that the best that is realistically achievable is some 10% to 30% power saving depending on application, since the voltage regulator and the LEDs are going to consume the rest anyway.

A:

You could read through the 200-page datasheet, and then mess with some confusing bit shifts and registers, but I recommend this library: http://playground.arduino.cc/Code/Enerlib
Also, if you're using an Uno or any one with a usb-to-serial chip, you could disable that or remove it.

