The best way I found to improve my social skills is trail and error.
Instead of being a complete introvert and being afraid to say or do anything in fear of looking like an idiot (which has never fixed my social problems), I became social. I said and did whatever I wanted, and I didn't let my fear restrain me.
Do not get me wrong, even when I was social, I still tried to use the best of my judgment, and reserved any words or actions which I was sure would be wrong to say.
By being more social, yes I've made hundreds and hundreds of gaffes and errors. Some of them were even major such as the context of a few of my innocent comments being misunderstood as sadistic or anti-semitic.
I'm not worried about making mistakes because no matter what social setting it is (with a few exceptions), I will never have to see any of those people again if I do not want to.
But making those mistakes through trial and error has greatly improved my judgment and now I am social and make far less mistakes.
What are your thoughts on this?