Turning Arduino off from software?

Is there any way to have my code turn off the chip and have it stay off, so that the only way to turn it back on is to cycle the power? I want to save battery power, and I want to do it simply. I tried to google for how to put the arduino to sleep, but the code examples were too complicated.

Something like this?

There's a tutorial here on doing it from your own code:

http://www.arduino.cc/playground/Learning/ArduinoSleepCode

--
Check out our new shield: http://www.ruggedcircuits.com/html/gadget_shield.html

I've used the Pololu switch before, they are awesome. You simply make one of your pins high and the switch shuts off power if you wire the Pololu switch to the power jack on your Arduino board. Then you can push a button and the switch will restore the power to the board until your software pull the pin high again. It uses microamps of power (enough to keep it idle for years on a few batteries) when "off."

The pololu switch would be perfect, but it's too big for my application. I was kind of hoping there as a software sleep mode that could turn the arduino completely off. The problem I'm having is that I have a light-to-frequency convertor on my interrupts, which is seperately powered, so that when I use the sleep modes to put my arduino under, it auto-revives. I need a sleep mode that literally turns the arduino off until power is cycled.

From the datasheet...

Power-down Mode:
0.1[ch956]A at 1.8V

To get to 0.1[ch956]A you will have to run the processor at 1.8V, disable pin-change interrupts (if enabled), disable the brown-out detector, disable the watchdog timer (if it was enabled), and enter power-down sleep mode. [I may have forgotten something. For example: the UART may have to be disabled.]

Even at 5.0V, you can get close to 0.1[ch956]A by turning everything off. This is very close to completely off.

The AVR libraries have functions for managing power.

My problem, as stated, was that my interrupts were occuring so that when the arduino went into power-down mode, it instantly revived. I got around this by #including <avr/interrupt> (I think) so that I could run cli() to turn off all interrupts. Then when the chip goes into power down, it stays down until the power is cycled.