OBD-II codes are standard and can be read by any generic scanner. Beyond that, each automaker has their own software for diagnostics, reading live data, and updating/resetting computers. There are some third party tools[1] that can handle a lot of this but they tend to lag the latest model years because they need to be updated as new models are released. These tools are probably expensive for the home mechanic but not really for a professional. Stuff like loading new firmware is almost always dealer-only.
[1] http://www.pro.innova.com/Product/FullDetail/5160