Well, the codes that a generic code reader can pull are limited to some OBDII emissions related stuff. That is why they sell BMW specific code readers. A generic reader can not read all of the BMW specific codes. Just because they are able to pull some codes at Autozone does not mean that they can read all of them. I have no idea why this myth still persists, but I see it posted every day. Part of the problem is the fact that the kid behind the counter was not told this in his 15 minutes of training in automotive diagnostics. But I don't know why anyone who reads this site for more than 30 minutes or so does not figure this out. There are blinking ads at the top of the forums page for BMW specific scanners, but I guess the people who continue to post this advice do not stop and wonder why there are BMW specific code readers. Even a minimum amount of research will make it clear that you can not get all of the codes with a generic reader. Also, getting the codes is only the start of the diagnosis. For example - you may get a code that says that the O2 sensors are reading signals out of normal range. Some people will replace their O2 sensors based on this, only to have the code come back. The reason is that the O2 sensor readings are indicating a vacuum leak, or some other issue. The out of range readings are just an indicator of a problem, not a defective sensor.
So, getting the codes read is just the start of the process, not a final diagnosis.