tl;dr: Use digiKam
digiKam, edit the settings so it saves metadata to image files themselves, use the caption
field.
I researched this a little a few months ago. Here is what I came up with.
There are several metadata formats available for images, but the most widely used is EXIF. This is important, because I found that most programs that can edit photos or their metadata will DESTROY all metadata in formats they don't know how to use. So the best place for free-text metadata is the EXIF comment field.
As for programs to use, the best seems to be digiKam
digiKam. It recognized and could edit more types of metadata than any other program I tried. The one major caveat is that it DOES NOT save image metadata to the image files themselves by default -- you have to edit your settings to achieve this. Otherwise it saves metadata to some auxiliary file that you will probably forget about and that you certainly won't distribute with the photo. Also, the EXIF comment field is labeled caption
.