My first Arduino project is a garage door open notification/control. I'm using a Uno and Ethernet shield; to determine whether a door is open/closed I've found some magnetic reed switches.
My question is: can this be driven from one of the digital pins of the Uno, or do I need to use an opto-coupler to drive this from a 12V power supply? Does it really require 500mA?
I think you're confused as to what a "magnetic reed switch" is. It is a switch that is actuated by a magnet. It isn't driven by anything (it can't be switched by the Arduino - unless you wire up an electromagnet to switch it, then you've just made yourself a relay).
The 500ma refers to the MAXIMUM current that the switch can carry. Since a reed switch is a sealed device it will happily switch extremely small currents (several microamps). It's generally considered that many switches need a decent current flow so that the arc of breaking "wipes" the contacts clean, but this limitation doesn't apply to reeds.