I've made a soft power switch. I'm sure it's been done before, but I thought I'd share.
Set pin8 as high in setup()
To start, press and hold the button until the relay clicks. You can then let go, and power stays on until pin8 is set to LOW in the software.
You can use an interrupt for power off - and get it to stop sensibly. Might be handy if you're using an LCD display or need to save something to EEPROM.
Since you're likely to be running 12v through the switch you'd need to step that down if you wanted to use the same button for your interrupt, or use a double pole switch.
Comments or suggestions welcome (including how to step down the 12v supply so you can use it as pin input for the shut down interrupt).