As far as I know, 撒谎 and 说谎 have the same meaning of "telling a lie". Is there a difference between them?
In my opinion,
- 说谎 can be used in the case of telling white lies; 撒谎 usually means telling malicious lies just to cheat someone.
- 说谎 is inclined to telling meticulously prepared lies; 撒谎 in inclined to telling casual lies.
- 说谎 is more formal; 撒谎 is used in spoken language more.
It's interesting to look at the usage of the verbs for lies. 说 means say, so literally say a lie. But 撒 means throw，so "throw" a lie indicates the lie teller is throwing the lie from the distance, which means he or she can not face to the listener(s) too close because of the guilty.
There is no essential difference between them and usually they are interchangeable.
May be this is not a good analogy, but:
think about "撒尿", which means piss.
We do it everyday.
We are accustomed to it.
My impression is that 撒谎 applies more to children, while for adult, 说谎 is inclined to telling meticulously prepared lies (quoted from songyuanyao's comment).