Putting the Atmega328 to sleep?

I would like to learn how to put the Atmega328 to sleep for an extended period of time (only waking once every 15 minutes to read a sensor and send a radio signal (so the on time is maybe 3 seconds). Where can I find a good explanatory example of this (meaning what libraries to use, if any, a breakdown of the code, etc.)?

Thank you.

For exactly this task i use the Narcoleptic library: Google Code Archive - Long-term storage for Google Code Project Hosting.

Thanks... Seems to work... Kinda surprised that the board running an empty loop uses 20mA...