Well a lot my Seniors CrossRoads and Crosh have defined already.
but on following:
So the Arduino is limited to an output of 5V @ 35mA?
I want to say that it's a lot(the current), always the Micro-ontrollers which ever you take up whether they are picaxe(another nice forum backed microcontroller) also the many others like PIC, Parallel Propeller etc all supply current nearby this level only, The thing they are there to process the code made by you and then achieve the final result via. supporting circuitry the same you are doing now giving resistance and diode and a relay to handle high current stuff.
Not only Microcontroller/Microprocessor's work like this other sort of IC's also call for supporting circuitry to achieve a goal.