Well of course the best option is to completely strip the paint, prime it back and paint it again. I'd start by spraying it down with some simple green, let that soak for a while, then use a pressure washer and a brush to get all the dirt, grease, and grime out of there. Next, use "aircraft remover" to strip most of the paint off (tip: the worse it smells and more warnings it has on the can, the better it will work) Follow the directions on the can and you'll probably have to do it over once or twice to get most of it off. Whatever paint is left in there, just use some sandpaper, steel wool, or the fastest method is a wire brush on a drill to get the remaining paint off. Then go back, use the simple green, pressure washer, and brush again to clean any of the stripper residue off.
Once you've got it down to the bare metal and really clean, prime it back before any surface rusts starts forming. Then prime, wet sand, prime, wet sand, clean and use a tack rag, then paint. I'd recommend using a flat black paint. The sheet metal in the engine bay isn't smooth and to me doesn't look good with a glossy paint.
If you don't want to go through all that, then clean it using the same method mentioned above, sand it to give the existing paint a rough finish and remove any loose paint, then prime and paint.