I use Noise reduction plugins in protools. Sonic Foundry and Waves make nice ones. I also occasionally use DigiDesigns BNR noise reduction plugin. Also an EQ can make a huge difference. A lot of times just knocking out the low end with a high pass filter can make dialog intelligible. Also computers, refrigerators, etc. can often be EQ'd out. For stuff running on 60 cycle power try knocking out everything at 60hz, 120 hz, 240hz and 480hz, etc. Waves makes a plugin called x-Hum that does exactly this for 60 cycle power (sometuimes referred to as NTSC) and 50 cycle power(sometimes called PAL).
However the most effective way to isolate voices on a noisy soundtrack is to simply rerecord the dialog (ADR.) However depending on your actors, etc. that may not be that simple.
Good luck.