By default, pnmtotiff creates a TIFF file with no compression. This is your best bet most of the time. If you want to try another compression scheme or tweak some of the other even more obscure output options, there are a number of flags to play with.
Actually, the best default would be to use LZW compression, which is what pnmtotiff used to do by default. However, the Tiff library no longer does LZW compression due to concerns with violating Unisys's patent on LZW compression.
The -none, -packbits, -lzw, -g3, and -g4 options are used to override the default and set the compression scheme used in creating the output file. The CCITT Group 3 and Group 4 compression algorithms can only be used with bilevel data. -lzw doesn't really work because the Tiff library doesn't do LZW compression. It used to, but its developers removed the function out of concern about violating Unisys's patent. This option remains in case you use a Tiff library that cooperates, now or in the future. The -2d and -fill options are meaningful only with Group 3 compression: -2d requests 2-dimensional encoding, while -fill requests that each encoded scanline be zero-filled to a byte boundry. The -predictor option is only meaningful with LZW compression: a predictor value of 2 causes each scanline of the output image to undergo horizontal differencing before it is encoded; a value of 1 forces each scanline to be encoded without differencing. By default, pnmtotiff creates a TIFF file with msb-to-lsb fill order. The -msb2lsb and -lsb2msb options are used to override the default and set the fill order used in creating the file. The -rowsperstrip option can be used to set the number of rows (scanlines) in each strip of data in the output file. By default, the output file has the number of rows per strip set to a value that will ensure each strip is no more than 8 kilobytes long.