I know that if I postpone my Pokemon’s evolution, I can learn certain moves earlier. For example, Mareep learns Thunder at level 55 while its fully evolved form, Ampharos, only gets it at level 79.
Obviously, Pokemon who change types by evolving get the benefits of their new type, but for everything else, why should I evolve early as opposed to waiting for good attacks?
The advantage gained is improved stats. The evolved form of a Pokemon has better stats than its earlier forms. However, when you evolve your Pokemon their stats are recalculated from level 1. So your fully evolved Pokemon will have the same stats at level 100 regardless of which level you evolve it at.
There are two disadvantages to evolving a Pokemon though. The first one is pretty minor, and is that a Pokemon takes longer to learn moves in an evolved form (as you noted in your question). The other disadvantage is fairly significant though, and only applies to Pokemon which evolve with an evolution stone. The majority of Pokemon which evolve using a stone won’t learn any moves when evolved, so you don’t want to evolve those Pokemon until they’ve learned all their possible moves. Evolving them earlier will really, really limit their usefulness.