I should first state that I'm not a qualified dog behaviourist but rather someone who has an intense interest in dog behaviour, and studying why they do what they do, as well as being a lifelong dog owner. (Two dogs of which have had exceptionally strong wills.) Just thought I should clarify that point before writing anything further.
I know that my reaction isn't helping because I don't know what to do - keep him on a lead and know that he'll be worse or let him off lead and risk him snapping and other dog owners getting upset.
There really is only one answer to this question. Aside from the legal obligation that by law you must have your dog under full control when outside, if you are not 100% confident that you can control your dog when out, then it absolutely must be on a leash until such time that you can be. This is the fairest for all concerned; you, the dog, other dogs, and other dog walkers.
Dogs Act 1871:
Under this Act, a court may, upon complaint that a dog is dangerous and not kept under proper control, order the owner to keep him under proper control or to be destroyed.
Dangerous Dogs Act (DDA) 1991
Section 3 applies to all dogs, making it a criminal offence to allow a dog to be dangerously out of control in a public place. This includes instances where there is fear that an injury might occur.
Owners found guilty under either section of the Act could have their dog destroyed, face the possibility of six months in prison and/or a fine not exceeding level 5 (at present up to £5,000).
This will help more than you might think, as if the dog is on the leash, you will have more confidence and control when potentially aggressive situations arise.
Dogs are great (in fact the best there is) at making issues of non-issues and you are 100% correct that your dog will detect your anxiety when approaching other dogs and therefore react to that anxiety. That is not to say that you are the cause however. It's a little of both from what I can determine.
My advice would be
Always walk on a leash until you have full confidence that you don't need to.
When approaching other dogs don't let your anxiety filter through to the dog. Keep a loose leash and a calm and relaxed voice. Don't over-command the dog in panic. There is a woman who walks her dog near to us, and I can tell when she's panicked, as she starts issuing a hundred different commands to her dog, as though it might luckily pick one to do instead of chasing the other dog she's approaching. The dog, as you can imagine, completely ignores her and then she starts shouting at it with terms such as, and I quote, "Kyle, don't you even think about it" -- Interestingly, I've never seen that command work yet!
If practical and you feel more comfortable, cross over the road whenever another dog is approaching. Again, do so in a very calm manner. What you really want to portray to your dog is that the other dog is completely insignificant and just not worth bothering with.
If it's not practical, then simply keep walking past the other dog in a very confident manner (I prefer to place myself between the two dogs), regardless of what your dog does. Most likely he will pull towards the dog, but if you continue walking, he will have no choice but to follow.) You won't need to pull him or anything else, the momentum of you walking will suffice.
Take a pocket full of treats with you. Immediately after you've passed the dog, reward him. This will help him to build a positive against meeting, and more importantly, passing other dogs.
Another school of thought is that you can sort of lead the dogs nose approaching the meeting, by placing a treat in your hand while you approach the other dog, and then placing your hadn in front of the dog's nose. The theory being that he will be more interested in what you have in your hand than the other dog. I personally have two issues with this. Firstly, it's unlikely that your dog would see a pocket size treat as a greater reward than being able to play/fight with another dog. Secondly, it's rewarding the approach, not the successful passing, in my eyes. The reverse of what we actually want here.
Other things you might also consider, as it's hard to see any exact cirumstance:
Doing a complete turnaround when another dog approaches, and leading him away from the situation.
Placing a muzzle on the dog. I stress here with utmost clarity, I detest muzzles on dogs, and it was the first thing I reversed about Blondi when I received her. She came with the muzzle that the past owner told us she needed when walking, I (some might say stupidly) binned it, and it's never been seen since. I firmly believe that if a dog "needs" a muzzle then it's not ready to be walked in areas where other dogs walk anyway, and more training is needed. However, (aside from legal requirements for some dogs) I do see that, for some, it can be a way of having confidence that should a fight ensue, the damage your dog causes will be greatly reduced.
The keywords for you absolutely have to be calm and confidence. I don't know of any two better qualities for an owner to have when dealing with 'spirited' canines.
There isn't going to be any overnight solution, though I have to add, that I have found Mikki Dog Walking Harness (Around £8.00) from most pet stores, an absolutely invaluable aid in cases such as this. Some are against them as they feel it teaches the dog to walk well on a harness, not just to walk well. I say they are a great way to start getting your dog used to walking where it should be when your dog is strong and has natural pulling tendencies. The harness prevents them from pulling by the dog's own balance mechanisms, though in no way hampers the dog's walking ability. It should be seen as temproary aid to a solution, not as a solution in itself. It just helps to make walk training much easier on spirited canines.