Well I think good communication skills are a prerequisite for getting a good viva score. In my case I had a strong profile as well with few achievements here and there in my student life. Plus they were pleasantly amazed that I looked young and I was 22 when I appeared in the exam.
Apart from that I had a good interview in a sense that I did not come across as anxious or nervous. I had a long discussion on the British Inquiry tribunal setup to look into the Iraq War. They asked questions on Tony Blair if he could be tried for making a decision to go into Iraq War under the international Law. And I had been following up the proceeding of inquiry very closely so it led to a healthy discussion.
I was asked questions from Constitutional Law and International Relations mostly. I have been writing for few newspapers as well and have been working with few youth activist organisations so that came under discussion too. Plus, I had to explain everyone in the panel why I was trying to switch from an engineering background to bureaucracy. In a nutshell, good profile, good communication skills, no anxiety, and tackling questions rationally were my key to success.