Question: I have learned that when someone wants to know where a person comes from, one must ask: 

> 
> Woher kommen Sie?
> 
> 
> 

A lot of people have asked me: 

> 
> **Wo kommst du her?**
> 
> 
> 

or 

> 
> Wo kommen Sie her?
> 
> 
> 

Indistinctly. So the question is what is the difference?

Answer: 
Structurally, we have the following correspondences:

* Wo kommst du her? (Or: Wo kommen Sie her?) = Where do you come from? (Or: Where are you coming from?)
* Woher kommst du? (Or: Woher kommen Sie?) = From where do you come? (Or: From where are you coming?)

The German variant in parentheses is the variant using the formal form address, which doesn't exist in English. The English variant in parentheses is the variant using the progressive, which is colloquial and rarely used in German, because its German version is clumsy.

While these two ways of putting it are a priori equivalent, English has a strong preference for the first in general, and particularly when asking for someone's home. In German the distribution is much less skewed, but there is a tendency to use the first structure when asking for someone's home and the second when asking for the origin of a recent movement.
"Woher kommen Sie?" is a more formal and slightly outdated version of "Wo kommen Sie her?". Both mean "Where are you from?" (or literally, "Where do you come from", as in "what place/event were you at before you arrived here" but it is less often used to mean that).

"Woher kommen Sie?" is not used in spoken language very often, as far as I'm aware. (I'm German, from the Cologne area). It sounds stilted.