
Have a look at BAT training by grisha Stewart - it's an excellent, gradual approach to teaching the dog to make the right decisions when faced with a trigger (e.g. turn away instead of charge at), and helps the dog relax knowing it has other options than aggression.
Doing some foundation work will be useful too - things like shovelling the dog full of tasty things as soon as he's spotted a dog (but far enough away that he's not bothered by him; that will help build a positive meaning to other dogs to counteract the negative one he has now. Also a handy little game is a version of Look at That - in basic terms, the dog gets clicked and treated for looking at dogs (again, far enough away that he notices them but isn't bothered). Pretty soon he'll start to look at them then back at you for a treat, then you can just click that. It allows the dog to see and observe the trigger (so he doesn't get worried about what the other dog is doing if he can't see them), but turns it into a game which will relax him (and again, there's the positive association of the food).
BAT training uses distance as the reward - extremely effective, more so than food as you work closer (although you can still incorporate treats into the training). Food can distract a dog a bit too much - one dog I work with would literally walk into the stooge dog if food is on offer because she'll just stare at the food, but using distance to reward good behaviour means she had a fantastic session on thursday that ended with her walking around with my dog quite happily (she has a full bite history with other dogs and used to attack if they got within reach).