I agree with most of the previous posters. I just wanted to add that I find it helpful to remember that an anion gap is not a true "anion gap", it just means that there is some anion present in the blood that is not being measured (ie Cl, and bicarbonate). People are always isoelectric, that is total anions always equals total cations. There is always a "normal" anion gap because that "unmeasured" anion that is always present is albumin and other negatively charged proteins in our blood, and there is even a formula that some use to correct the anion gap for low albumin states. And finally, a neat mneumonic to help you remember the differential for an anion gap acidosis is MUD PILES.
M - Methanol
U - Uremia
D - Diabetic ketoacidosis
P - Paraldehyde (this drug is no longer used, but is known to keep the mneumonic going)
I - Iron, isoniazide
L - Lactic acidosis
E - Ethylene glycol intoxication
S - Salicylate intoxication