Use a leveler product, such as Steve said, if the imperfections are mostly cosmetic, ie, not too large or deep.
If the area isn't too huge then you could consider using thinset mortar. This is the stuff that is used to create "mud beds" for tile jobs and also to set ceramic tiles. You would want to clean the existing surface and probably roughen it up with a wire brush and maybe muriatic acid. Then brush on some bonding agent (next to the thinset at your building supply store in gallon jugs, looks like milk), then mix thinset mortar and trowel it on and level. Mix it very dry, the more water the weaker it is and don't float the surface so much that you get water on top. Good luck!