Everybody has some ability to detect whether people are lying or not, though some of us are better at it than others. Psychologist Paul Ekman has developed a tool that he believes will improve that ability for everyone. Ekman is a leading authority on reading microexpressions (unconscious facial expressions that in a split second can reveal the owner's true thoughts) to detect lies. His work has been dramatized by the American Television show Lie to Me. I haven't had the time to use the microexpression training tool, but apparently it takes only an hour. It's available at www.PaulEkman.com.
I think the ability to read microexpressions would be more useful against empaths than sociopaths. Why? Because sociopaths have a less rigid sense of self, they are able to actually believe their own lies much better than empaths are. For instance, I am able to compartmentalize quite well -- just like the protagonist in the movie Memento, I'm able to tell myself lies that I can actually believe. Once I believe a lie, any microexpressions seen on my face would seem to support the lie, not undercut it. Empaths, on the other hand, seem to need a stricter sense of identity. Although I'm sure they unconsciously lie to themselves all the time and microexpressions wouldn't be able to detect those lies, they seem much less able to consciously lie to themselves to the point of believing the truth. In those situations, the ability to read microexpressions would be a very useful tool against a lying empath.