Be clear about the difference between polish, wax and glaze.
To get a good result you need to polish back to a shine, then protect the surface with wax or a glaze finish. There's loads of information on my web site www.boatsheen.com
For old fibreglass that is just dull, discoloured and salted, use something like boatsheen prewax polish. This is a gentle polish with no coarse abrasives.
If it's scratched, use a cutting compound to get rid of scratches. This works by taking off the top layer of gel coat, so only use it where necessary and don't be led astray by suggestions to use T-cut or various other cutting compounds for general surface polishing. It might work, but you are cutting into the surface and there's a serious risk of cutting right through to the glass fibres.
Finally apply a protective coat. The hardest and most durable wax is carnauba - derived from the Carnauba plant in Brazil. Some of the brands mentioned in this thread include a bit of carnauba, but for a really high concentration of top grade carnauba, try BoatSheen 'Best Brazilian'. There are various waxes described at www.boatsheen.com/boatwax.html
An even better result is if you glaze the topside. Instead of a wax, glazes use modern chemistry to fix the protective shiny coat chemically to the GRP. Boatsheen Glaze also contains non-stick PTFE, so that dirt tends to slide off. This should last a whole season without too much difficulty. See www.boatsheen.com/boatglaze.html
If you are considering machine application, take care. GRP boat hulls are not the same as car bodies. Car guys heat the surface with the polishing machine. If you do this to gel coat, it's permanently damaged. The answer is to use an oscillating polisher, not a rotary machine or a pad on a power drill. It's just not worth the risk.
The same really applies to polishes and waxes. You will get much better results if you use products that are formulated for use on boats, rather than general purpose products like Mer or Meguires, that are really formulated as car products.