I've got a number of different chemicals in my arsenal, but CD2 Engine Degreaser is pretty darn effective, as well as good 'ol Meguiar's APC and Meguiar's Super Degreaser (in varying dilutions) depending on how greasy things are. It's a good idea to have a separate set of detailing brushes for engine bay. You don't need fancy brushes, cheapo paintbrushes at different lengths and widths are pretty clutch. After spraying your chemical of choice, agitate with the cheapie brushes and then gently rinse - I use a small pump sprayer for for that. Easy to modulate, and won't flood anything in the engine bay.
Finally apply dressing of choice - CD2 also makes a great engine bay detailer, but there are a TON of options here. Meguiar's Hyper Dressing, Griot's Engine Bay Detailer, it's kind of hard to go wrong with any of these (though I'd stay away from classic Armor All, a little too greasy for me).