While everyone surely has their own method, and while many different ones can work fine: I'll throw in my recommendations as well.
If you have an exposed air intake filter, make sure to cover that, and make sure to either cover the alternator, or be very careful around it. Many things in modern engine bays are safe to rinse off, just avoid using high pressure. Ensure the engine isn't hot (running longer than a minute and the exhaust manifold will be VERY hot for example), but a warm engine isn't bad.
I use all purpose cleaner (APC) on engine bays diluted either 4:1, or 10:1 (either four or ten parts water to one part APC), which I spray liberally, then agitate with a dedicated brush used on engine bays. Agitation makes a HUGE difference in the cleaning power of anything, and a $2-5 brush will make a noticeable difference I think you'll find.
Once everything has been sprayed and agitated (don't forget the underside of the hood!), I rinse with water. At this point, you can either let the engine bay sit for awhile, or help it dry by wiping with a towel, or running the engine for 5 minutes.
The last step is dressing. This, like APCs, has a wide range of flexability. Some people stick with CD-2 engine bay detailing spray, some use tire-shine, and some use other products. Personally, one of my favorite products to use is No-Touch Tire Cleaner & Protectant. This product comes in an aerosol can and comes out as a foam, which clings well, cleans, adds a semi-gloss shine, and helps to protect. I like the idea of this over other tire-shine products that may be petrol-based, or too thick. The No-Touch is also nice because you spray, walk away, and in 30 minutes you have a nice shine without and build-up, no mess, and because it's aerosol based, it easily covers all hoses and wiring.
here are some pics of a recent engine bay I worked on: this one belonging to my Dad's 2007 Honda Pilot with 50k miles (i did this father's day).
before:
after:
