The mechanical action of a high pressure sprayer at close range is the most effective at removing the big hunks. Then any of the chemicals suggested above plus mechanical action of a stiff nylon parts brush will get the rest.
Might also consider doing a little detail and paint.
Here's a link to how I cleaned up my engine -
http://www.peachparts.com/shopforum/diesel-discussion/322334-engine-cleanup.html
and some pictures
Unfortunately it doesn't look like that any longer, but the better part of 100k miles takes its toll.