Do you have an Android phone? If so, invest $20 and buy an ELM OBD-2 Bluetooth adapter, and the $5 Torque app.
Vague codes like "Lean Condition" or "Rich Condition" or "Misfire on Cyl 1" can be hard to diagnose by the code itself.
With the Torque app you can watch sensor data in real time. Coolant temp, oxygen sensor output, PCM long & short term fuel trims, MAF airflow, intake air pressure, the list goes on and on. It may take a little bit of Google research to learn how fuel injection works on these more advanced engines, but having this info at your fingertips helps a GREAT deal.
For example, I had an ex's mid 90's Chevy pickup with 5.7L engine would occasionally sputter and die while coming to a stop. Code showed up as "coolant temp sensor." So in went a $15 coolant temp sensor. Problem remained.
With the phone hooked up wirelessly to the OBD-II port, I could monitor coolant temp real time from the passenger seat on my phone. As the truck came to a stop, and sometimes when hitting a bump, the coolant temp would nosedive to like -50F. But it would quickly jump back up. In cruising conditions, that absence of coolant temp data (or rich mixture from a -50F reading) wouldn't bother the truck as the engine was running fast; it'd hardly skip a beat. But when coming to an idle at a stop, when the coolant data went wacko for a split second, it was enough to stall the truck.
The point is, without this data, I was unable to tell that it was actually a loose wire in the *connector* of the coolant temp sensor. When the truck hit a bump, or came to a sudden stop, it was enough to break the connection.
When monitoring the data while the engine's running good, you'll know what to look for, or something will become immediately apparent when it's not running good.
Just a handy inexpensive app I recommend any gearheads to purchase if they have an Android cell or tablet. I swear I don't work for either company