Inexpensive code readers from the auto parts store will read and clear generic, standardized, OBD II codes that relate to the engine and emissions controls. They are very useful for pointing you in the general direction of the problem with your engine, but they rarely correctly identify a specific part that, if replaced, will solve your problem.
More expensive scanners will read current, pending, and historical OBD II codes, and will generally have the capability to download software to read body and drivetrain diagnostics, and perhaps some additional nonstandard engine data, for a specific make of car. These will generally have two-way functions. For example, if your window won’t roll up from the switch in the door, bur your scanner can roll up the window, you know that the problem is the door switch or the connection between the door switch and the computer. You will need such a tool if you need to electronically retract your brake pads for service, or reset an airbag failure light, or register a new AGM battery with the car’s computer.
The most expensive scanners come from the factory, are uniquely programmed to deal with one make of car, and will do all kinds of tests to help you pinpoint problems. These cost several thousand dollars.
Snap-On and a couple of other professional tool suppliers make scanners for independent shops that come with updateable software for multiple makes of cars. I have heard that they run $2000-$3000, so they are a great value for an independent shop.