What actually removes flux really well is Xylene. BUT and this is a big BUT, it always can discolor certain plastics. I've never had it remove silk screen or do anything to IC's or other parts, I have had it discolor power connectors and headphone jacks. It absolutely cleans every single trace of flux away, it ends up looking shinny and bright like it was professionally treated. Again, don't forget the BUT.
Denatured alcohol also works somewhat OK, Isopropyl alcohol about the same.
Xylene however for me cleans as fast and as good as any commercial spray cleaner I've used, just remember that BUT I mentioned above. The good part about it is it's cheap and readily available at your local hardware store. Ohh and another note, don't use it indoors.
What I normally end up doing is de-fluxing with Xylene after all my main components are in place and then soldering in any plastic based items and just using a q-tip and xylene to clean the rest. No need for an ultrasonic bath, this stuff removes the flux instantly and leaves nothing behind. A mild toothbrush can be used when in doubt along with it.
Have fun, and as always my tips come without warranty.
Jeff