This program is part of Netpbm(1).
ppmtoppm simply copies a PPM image from Standard Input to Standard Output. This may seem an unnecessary duplication of cat, but remember that a PPM program can read a PBM or PGM image, and the right kind of PAM, as if it were PPM. So ppmtoppm can read either a PBM, PGM, or PPM image and produce a PPM image as output.
Even that is of limited usefulness because of the fact that almost any program to which you would feed the resulting PPM image could also just take the original image directly. However, sometimes you really need a true PPM image.
When you know you have a PGM image and want a PPM image, pgmtoppm is a more general way to do that conversion. When you know you have a PBM image, use that and pbmtopgm.