Another vote for Oil Eater but it can leave an oxidized looking residue on aluminum.
For the engine compartment I like to use Dow Scrubbing Bubbles bathroom cleaner. It's safe for metal, plastic etc. Spray, let it sit for a few minutes, then hose it off. Repeat if necessary. Don't do it...