A metric file describes properties of the font that are independent of what the characters actually look like. Aside from general information about the font itself, a metric file has two kinds of information: information about individual characters, organized by character code, and information about sequences of characters.
The per-character information specifies the width, height, depth, and italic correction of each character in the font. Any might be zero.
In addition to information on individual characters, the metric file specifies kerning, i.e., adding or removing space between particular character pairs. It further specifies ligature information: when a sequence of input characters should be typeset as a single (presumably different) "ligature" character. For example, it's traditional for the input `fi' to be typeset as `fi', not as `fi' (with the dot of the `i' colliding with `f'). (In English, the only common ligatures are fi, fl, ff, ffi, and ffl.)
Different typesetting systems use different metric file formats:
tftoplprogram (see section `tftopl invocation' in Web2c) that comes with TeX to transform a TFM file into a human-readable "property list" (`.pl') file. You can also edit a PL file and transform it back to a TeX-readable TFM with the companion program
pltotf(see section `pltotf invocation' in Web2c). Editing metrics by hand is not something you're likely to want to do often, but the capability is there.
The Afm2tfm program distributed with Dvips converts an AFM file to a TFM file and performs other useful transformations as well. See section Invoking Afm2tfm.