Ideally you should have an IS to cover each chemical class of metabolite you are trying to quantify eg fatty acids, organic acids, amino acids, monosaccharides, amines and so forth. This may not always be possible in which case you need to ensure that your samples are processed as reproducibly as possible so that comparative estimates can be made between control and sample.
It is recommended for untargeted assays. Since a constant volume/amount of internal standards are added to each sample prior to extraction and analysis, an internal standard does two things:
1) corrects for run to run and sample variability
2) accounts for differences in ionisation efficiency between various analytes, especially of different metabolite classes, and accounts for matrix effects.
I have found normalising samples to an internal standard does also improve the coefficient of variation (CV%) of repeated measurements by minimising this factor.