They give you a code(s) and try to sell you what it could be.Just because it states P0301(misfire cylinder #1) does not mean a spark plug or coil is bad,there are many other issues that could be wrong.A real diagnoses is needed tro save from just throwing parts at it,but yes a diag costs between $100-$150 plus parts/labor for the repair but more then worth it in the end.
Get a EVAP system small leak code and they will try and sell you a gas cap.I have yet to diagnose a EVAP small leak code that turned out to be a bad gas cap and I've done alot of those EVAP leaks diags.Most have been leaking vent solinoids.
When did I ever say, "Get the free CEL scan then buy what they tell you to buy and that will fix the problem"? Did I not just say, "STOP throwing parts at it..."?
The code tells you where your problem is located, then you go there and diagnose it yourself and/or research what could help you. The code is what it is. If there wasn't a problem, it wouldn't be throwing that code. The code is essential to an efficient and cheap diagnosis and repair.
If you are having a misfire, it could be a coil, it could be a spark plug, it could be an injector, or it could be bad wiring, connections or a module which controls these three essential and main parts. You can pay someone $200 to run the CEL scan and unplug injectors and coils for you, or you can get a free CEL scan from Autozone, do some research, unplug some injectors and find the problem yourself.