The problem is that the OBD codes aren't always specific. Sometimes they're specific enough to diagnose the problem, sometimes they're not, which is why you still need someone with auto expertise to correctly identify the problem. Most shops will warranty against unneeded repairs as a result of reading the code by virtue of buying their $99 "Check Engine Light Service" (whereas Autozone's reader is free to borrow). I've been in the situation where a shop made a check engine light repair that didn't fix the problem, so they made another $500 repair to actually remedy the problem.