Schmitt trigger is special logical element adjusted to work with analog input signals. The primary purpose of Schmitt triggers were restoring the shape of digital signals. Because of transmission line effect digital shape transforms from square to trapezoid or triangle or more complex signal. Of course during transmission signals become noisy and distorted.

Schmitt trigger is a comparator circuit but inside it is a positive feedback what results in hysteresis and memory effect.
Comparing to simple logical elements Schmitt triggers have two threshold levels. Between these threshold values U1 and U2 the state of output doesn’t change what is so called a hysteresis. Such effect stabilizes output against rapid triggering by noise. Bellow is two characteristics compared of simpel logical inverter and Schmitt trigger inverter:

We see that Schmitt trigger characteristics is more complex -the output signal threshold depends on direction of input voltage rise/drop. When input signal is rising towards Ucc, then Threshold is U2, when input voltage is dropping towards zero- threshold become U1.
Lets see how this would look with real noisy signal.

Because of hysteresis any noise that amplitude is lower that U2-U1 is removed. And another fact, that signal front becomes square.
Standard digital chips has Schmitt trigger with same logical functions like TTL inverters, 2NAND. For TTL IC’s thresholds are 0.9V(U1) and 1.7V(U2).
One of widely usages of Schmitt triggers is reset signal forming. Some chips may require delayed reset signal, so one of simples solutions is to use circuit with Schmitt trigger:
Reset signal former consists of RC circuit and Schmitt trigger. When Vcc is applied then capacitor starts charging and input voltage of trigger grows up to threshold value U1. The bigger capacitance of capacitor and bigger resistance of resistor – the longer reset signal length.
Another interesting usage of Schmitt trigger is impulse generator. Using Schmitt trigger circuit becomes more simple than using regular logic elements.
And one more I think important usage is Schmitt triggers is switch debouncing.
The Schmitt trigger ensures that a clean output pulse will be produced.