It resets the Atmega8/16u2 on the Uno and switches it to device firmware update. For windows and linux, Atmel has a program called FLIP that will allow you to reprogram the 8/16u2 chip via USB.
Unfortunately, the Atmega328 does not have native USB, so FLIP can not be used for programming. If you were to get an USBtiny or equivalent programmer, you could have a recovery route by just reflashing the chips that get tweeked. All firmwares are located in the \arduino-1.0.1\hardware\arduino\firmwares directory.