Making many, tiny, differently colored groups isn't a good choice, nor making details a part of the mesh instead of a texture. It's only good for pre-rendered pictures, otherwise meshes should use as low polygons as possible and still look good with a texture having the detail part. Don't avoid using textures if you need to add a detail to your model.
The number of textures depends on the size and detail of the model, as also on possible tiling (repeated pattern) of the detail on the model. For small or simple models you can use a single texture which can cover also multiple groups. It's all dove via UV-mapping. The dimensions of the texture must be a power of 2 for both edges, i.e. 1, 2, 4, 8, 16, 32, 64, 256, 512, 1024, etc., e.g. 64x256, 512x512, 1024x32. For the best compatibility with older graphics cards some people still use, either of the edge shouldn't exceed 1024 pixels, but you can make also textures with 2048 and 4096 pixels sides as a high-resolution option for people having modern graphics cards and wanting the best visual experience. On modern cards you can get better results concerning frame rate friendly and better looking model with a simpler mesh and more detailed large textures as a high resolution option, which can be rescaled down to for example 512x512 px for the default, standard resolution option, and either of those textures can be used by the same mesh without any changes, other than replacing the texture file (either physically or dynamically by the code).
I personally make textures with GIMP, but other people make great textures also with Paint.net, Photoshop.
There should be tutorials covering texturing of the models listed on "
Tutorials" in the Tutorials for Addon Developers section (those listed as 3D modelling), or in the "
Add-on Development Resources" article (UV mapping tutorial, and probably some other).