There are two ways to add color to a model in ZBrush - polypaint and a texture map. With polypaint the points in the mesh are colored, so in order to get good detail you mesh needs to have a lot of points - about a million is a good start. Also polypaint is really only for use in ZBrush. With texture maps your model doesn’t need to have lots of points but it does need to have UV coordinates assigned. UVs tell ZBrush (or any 3D app) how to display the 2D image (the texture map) on the 3D surface of your model so that it will look correct.
With ZBrush you can use both methods which can make things easy. You can use polypaint to color your model just how you want, adding photos and so forth through SpotLight. Then you can assign UVs and convert the polypaint to a texture map so you can use the map on the low poly mesh in another 3D app.
You can read more about it here: http://docs.pixologic.com/user-guide/3d-modeling/painting-your-model/