WARNING: If you found this through a link on "Answers", don't trust it completely, it's not finished and there are bits I know aren't yet correct.
Step 2: Arduino code
The timings in the code are for a Nikon camera. If you want this to work with a Canon or other DSLR you'll need to look up the correct timings
I chose not to just paste it in as it became almost unreadable.
Step 3: The test circuit
Upload the code to the Arduino, attach the LED and power and then aim the LED at your camera. When you press the Arduino's reset button the code will run and your camera should trigger. Be sure you've turned on remote triggering in your camera's menu first!
Step 4: Off-board
For that reason this step shows you how to take the Atmega168 or Atmega328 microcontroller with Arduino bootloader and solder only the components needed onto a small piece of veroboard. It uses the barebones implementation as described by this instructable, the Hackduino, by jmsaavedra.
For about $8 you get the same functionality in a smaller package than your arduino development board. I used the circuit found in jmsaavedra's instructable to make my own Hackduino which I could then cram in a nice box.
The components you will need are: