I would really urge you to see a professional dog trainer that you trust, with experience with aggressive dogs, and have him assess your dogs and help you out.
But after reading a bit more detail about your situation here than what you gave in another question on why he lunges at children, I'll take a guess at your dog's previous history, which might go some way towards explaining its current behaviour, and I'll try to give you some pointers as to what you can do to improve the situation.
Dogs tend to avoid conflict at all costs
Dogs, by their very nature as social animals, are very non-confrontational. Because they possess very many very sharp teeth, they have evolved a multitude of warning signals that let other dogs know what they are up to*.
**Which is why cats, which are solitary predators, never let you know before they scratch you. Giving away your intentions is dangerous if every interaction with another member from your species is a potential fight.*
Dogs will look away, lick their lips, turn their heads, pretend to sniff and present the side of their bodies in order to calm other dogs down. If that doesn't work, they start staring you down, raising their heckles, baring their teeth, snarl, growl, bark and snap at you, all in order to get you to chill the heck out. Only if none of these signals work will they start biting, and even then it's usually just a quick nip.
However, many of those behaviours are seen as problem behaviours. Many people with a dog that has associated other dogs and people with bad things happening, and therefore constantly growls, lunges and barks at them, will punish the dog for these behaviours. Unfortunately, the dog will fail to pick up on the reason for being punished in most circumstances. Instead, his association of dogs/people and bad things happening will grow but he will start to suppress one warning signal after another until he goes straight for the bite.
I'm suspecting this is what happened to your dog and, depending on how much this has been trained out of him, he could be quite difficult to rehabilitate. Given his history, he probably isn't safe to be off leash around other dogs at this particular time. The main problem is that, if another dog does anything to upset him, he won't let the other dog know that he's not okay with it but go straight on the attack.
Desensitising your dog to other dogs
Your main technique for dealing with this issue, as with the lunging at children, is desensitisation. Slowly introduce him to other dogs in a manner that he is comfortable with. If that means the other dog has to stay twenty metres away, then so be it. Reward your dog every time he shows interest in another dog (i.e. looks at him) with lots of treats and praise. Be very quick in your reactions, you want to reward him for looking and before he starts deciding whether that dog poses a threat or not. Try to set him up for success as much as possible. Every time you judge his comfort zone wrong, he'll regress far more than the progress he gets from one good association.
If your dog does react badly and starts lunging/barking, try to distract him any way you can but without anything negative, otherwise it'll simply reinforce his bad associations with other dogs. For example, try to get his attention with treats and calling his name in a really exaggerated high pitch, happy voice but only reward him after you've asked him to do something, e.g. sit or watch. If you can't distract him at all, lead him away to a distance he is comfortable with, which will likely be around the corner and out of sight of the other dog.
One thing you can do to let him know that you don't want him to do something is to introduce a no reward marker, i.e. a command that the dog associates with losing out on a reward. This can be a simple "oh, oh" or "oh no" in a disappointed voice, rather than the stern "ah ah!" or "no!" you'd use as a verbal correction. Once you have a no reward marker trained in (see below), you can use it to correct bad behaviour without forming bad associations. It won't be enough to stop him barking at other dogs, but if you're trying to distract him with a sit, and he keeps getting up and turning around, it might just make him more likely to listen to you.
How to teach a no reward marker
In order to train in a no reward marker, you need to set your dog up to fail. This seems opposite to what I've said above, but he will only be failing some of the time.
Ideally, get some treats that your dog loves but that you can eat as well. Cheese cubes or hot dogs work great, assuming you're not vegan or lactose-intolerant. Try and find a situation where you ask your dog to do something and you know he will fail a few times. Training in a new command is a good candidate for this. If your dog is a jumper, stopping him jumping up is even better.
Taking that last example as a case study, with the dog sitting in front of you, hold a treat above your head and slowly lower it down towards the dog. Depending on how jumpy your dog is, only lower the treat a little bit before reaching down to it very quickly and rewarding him. The goal is to judge the distance at which your dog jumps and, normally, to reward it before reaching that threshold. You slowly set that threshold closer and closer to the dog's face, until it won't jump up at all and waits for you to give it the treat.
Now, your typical jumpy dog will break its sit and jump up. In this case, quickly pull the treat back up out of its reach and mark that loss of a reward with an "oh oh". That way, your dog will begin to associate the command with not getting the treat. If that doesn't stop your dog jumping after a handful of tries, eat the treat yourself whenever he jumps up. That way, you really hammer home that that treat is gone!
Be careful though to get the balance right, you don't want to frustrate your dog and lose interest. So for every time it gets it wrong, put the threshold further away from its face to a distance you know it can deal with and repeat the exercise from there a couple of times.
Behavioural Adjustment Training
A similar technique to desensitisation is Behavioural Adjustment Training. The basic idea is to retrain your dog to defuse situations rather than escalate them. For that you put your dog in a situation that he is somewhat uncomfortable with but doesn't react to yet. That is, you get your dog to walk towards another dog (or have the other dog come towards your unmoving dog) to a distance that he notices the other dog but does not lunge or bark at it. If your dog starts to show any sort of calming signal (averting his eyes, sniffing the ground, turning its head, licking its lips), you mark the occasion with a resounding "good boy!" and reward him by removing him from the situation, i.e. walk away with him. Your dog would be much happier if everyone else would just keep their distance, so removing him from an uncomfortable situation can be a powerful motivator for him. For this to work, it is even more important not to "set him off". If he does react to the other dog and lunges at him, help him out and move him away from the dog. Make sure to keep him at a much larger distance the next time, as he'll be more sensitive.
For this to really work, though, you will probably need the help of a professional, as your timing and your reading of dog body language will have to be spot on. For a fantastic introduction to dog body language, have a look for a DVD called "Calming Signals" by Turid Rugaas. There's a five minute intro on YouTube that will give you a sense of how horribly produced it is, but if you love your dog, you will brave the sleep-inducing Norwegian accent and the horrible 90s camcorder look. Because for all the cheesiness and tackiness of the video, it is by far the best video on dog body language I have ever seen.
The human factor
Unfortunately, you might, to some extent, also be part of the problem. Having a reactive dog, it is likely you tense up whenever you see another dog or child in the distance, trying to decide whether they'll come close enough for your dog to react and how you can avoid them. Your dog will pick up on that, whether it is from your body language or because you hold the leash ever so slightly tighter. You being nervous is one more reason for him to keep other dogs as far away from him and you as possible. He will also have learned to associate you being tense with other dogs being around, so he will actively look for them.
If you have a friend you can trust to be able to handle your dog under any circumstances, it would be interesting to see him take your dog for a walk to see whether he reacts the same if you are not around.
Even just being on leash, however, also puts up his stress levels, as he knows his movement is restricted. Unfortunately, having a history of attacking other dogs when off leash, it won't be easily possible to see how much being on and off leash affects his interaction with other dogs.
There's bad news and good news
It will be very difficult and time-consuming to socialise your dog to other dogs, and you can probably never trust him fully around other dogs. But with time and dedication, you can alleviate his behaviour to an extent where you are both comfortable and happy to go on walks and be around other dogs without constantly worrying about what might happen.