What are they for? Stacking. You put the headers on top of your Arduino and then you can add shields like Adafruit's Protoshield or Motor Shield or Proto-Screwshield to get your Arduino doing all the cool things you want it to. The legs are all 10.5mm long, so after PCB thickness (1.7mm) you have a height of 8.8mm - just enough to clear the Arduino's USB-B connector. They’re also fully compatible with shields designed for Arduino R3 and the Leonardo. For shields that don’t use the 10-pin header or 2x3 header, use the 6 or 8 pin ones.