Taking Classes is a good solution.
In fact I used to work for a company in Switzerland that had hired an English Tutor to teach International Employees.
It didn't help me much though, My tutor thought my English skills were good enough.
But a lot of my other international colleagues found it really useful.
In fact, the method he used was quite interesting. He used to give People a book to read and then discuss with him every week.After that he'd watch some American/British Sitcoms just to let the Internationals get used to the speech patterns of the Americans/British.
I wonder why more companies dont use tutors like the one I just mentioned.
I mean If I had to hire an International Employee who is extremely bright but has below average conversational skills, i'd rather hire him and train him on the language. But thats just me..........
As for social skills, Its something you just learn over the years.
I come from a country where asking questions like: How many Kids do u have??
Where did u go for honeymoon? what did u do on ur honeymoon? aren't uncommon.
If I have a colleague at work that I am friendly with, I'd invite him over for dinner every once in a while.....
In certain parts of Europe, Inviting someone over to have dinner with your family isnt common. Only after you've gotten to know the person really well does it happen.
So, social skills are in a way culture specific too........ and you dont really learn the culture unless you live in the country................