Its a bacterial infection, usually there is a small cut or scrape that seals up and gets infected.
The best thing for it in my experience is oral SMZ antibiotic tablets, crushed up and mixed in applesauce, peanut butter or a bit of cake icing.
Also, you need to help reduce the swelling in 2 ways- hosing it down at least 10 minutes twice daily, and exercise. I know it sounds odd but if you can exercise him- either riding or lunging- it will help pump the lymph fluid up and out. If you can get him out for a 10 minute gallop every day I bet it will drastically improve. You need to get his heart rate up so it can help pump the fluid out.
Spent a whole hour today laying in a pasture, waiting for a sparkling vampire to show up. Alas, I woke up and looked over, only to find a mound of horse crap. Sigh.