I've had good results with black enamel from the hardware store, both gloss black and satin black. For filling small scratches etc on the body I generally use a small modelling brush with gloss black, and build it up over a couple of coats. Leave it a week or two before buffing.
For more extensive damage I strip back to bare metal with paint stripper and repaint. So far the only bits I've done like this have been satin/matte black bits (the baffle just behind the lens mount on my M645, and a waist-level finder), though I have plans of repainting my non-metered M645 prism cover, and that'll be gloss black. I start by cleaning the stripped metal bit with enamel thinners, then do a very fine dusting spray with satin black enamel paint. then after a minute or so, I do another slightly heavier coat, but not enough for the paint to gloss over. Then the part goes in the oven for an hour at 80-90 degrees C. Once it's cooled off, I repeat the exercise, with a very fine dusting coat followed by a slightly heavier coat, then oven baking.