The right way to label figures in LaTeX is to do so within the TeX file itself so that the fonts match and it's easy to move/change the labels without access to the program that originally generated the image files. Colin Rourke's pinlabel.sty is a good way to do this and is used by the MSP journals. The hard part is figuring out the coordinates for the labels without a lot of guesswork. Pete Storm wrote pinlabeler which makes this trivially easy, but unfortunately it doesn't work naturally with Mac OS X. Therefore I wrote labelpin which is less sophisticated than pinlaber, but works on OS X, Linux, and Windows. It's just a simple Python script, so there's no need to compiler anything. Installation instructions are at the top of file, but on OS X all you should need to do is put it in your path and make it executable (chmod +x labelpin). For usage instructions, do labelpin -h.

Alternatives to pinlabel.sty include overpic, WARMReader, the import environment of xypic, and TikZ. It's easy to modify the labelpin script to handle any of these, and I have done so for xypic and TikZ in the form of labelxy and labeltikz. The TikZ version needs the (tiny) TeX package tikzoverlay.sty included in this repository.

Personally, I use the TikZ variant since it's easy to add additional graphical elements beyond just labels.