I've heard people recommend a dilute solution of Simple Green. Before you start, it's a good idea to cover as many electrical connectors/sensors as you can (wrap them in aluminum foil or something). Then just spray the solution in the areas you want to clean, let it soak for a bit, then carefully rinse with a gentle stream of water, avoiding electrical areas as much as possible.
Oh, and if you do it to a warm engine, everything will evaporate faster, giving less of a chance of water penetrating someplace it's not supposed to and causing problems.