There are a lot of reasons why a dog can become aggressive. A lot of dogs are aggressive because they don't know they have better choices. They have always gotten what they wanted by growling or lunging.
The answer to getting your dog to be more social and less reactive is to give clear rules, structure and guidance. Correct a dog for what you don't want and reward for what you do want. That will allow your dog to start thinking about different choices he can make. Once he realizes that he gets rewarded for behaving right and being calm and then being corrected for the behaviors that are undesirable, he will start the gradual up hill to becoming that amazing dog he can be.
It is very important to stay consistent with your new rules or your dog will be confused and go back to his old ways. Consistency is always key to teaching new things.
Sometimes all it takes is some patience and understanding to get dogs where they need to be.