I used one of those engine flush additives from autozone, and I had really good luck.
http://www.autozone.com/autozone/access ... 523555_0_0_
I did this during an oil change. I drained my old oil out (did not replace the filter), refilled with some cheap oil, ran the car a little bit to get the oil to operating temperature, then added the stuff per the instructions (idle for 10 mins or so). It was really thin, kinda like paint thinner.
Anyway, after running with brand new clean oil, the old oil came out looking really dirty again. I would say it worked well because just recently I changed my oil again after about 7k miles (on synthetic) and the oil still had some amber color to it, where before it was much darker. I was pretty pleased with the results.
Note that since I've owned the car I've always run good oil and changed it regularly, however I did many years of short trip city driving and I think that's what really made the engine dirty.
I think you could really clean your engine up if you did an oil change like this every week for a month.