This has been discussed many, many, many, many, many times on the board. Here are my favorites.
The absolute best finish is powder coating. Takes a little more effort 'cause you need to have the block and heads boiled, take them to the coaters, convince them to not coat vital engine internal stuff (I 'help' them mask my parts!) reboil and water blast the parts (the coaters thoroughly sand blast the parts so they need to be cleaned again), then machine the engine.
A close second is to paint them with the regular automotive three stage - prime/base/clear catalyzed urethane paint you use on the body of the car. Stands up to heat, chemicals and general abuse as well or better than any other finish I have tried, and no other paint finish can approach the quality look.