How does addition of impurities in a solid decrease the melting point?
one of the most prevalent (and simplest) model which explains this fact is colligative freezing point depression.

Freezing (or melting) point is temperature at which solid and liquid phase are in equilibrium, and their vapor pressures are equal. Adding (non-volatile) impurity in solid phase lowers the vapor pressure of solid phase (because you lower the "concentration" of your compound in solid phase), and phase equilibrium can be achieved at lower temperature. 

Difference between melting points for pure and impure compounds can be quantified with following equation:
$$ \Delta T = i K_f b $$
where $\Delta T$ is melting point difference, $i$ is Van't Hoff factor which tells you on how many species does the impurity dissociate, $K_f$ is cryoscopic constant which tells you how great the effect is, and $b$ is molality of the impurity.

Basically, all impurities lower the melting point, if they do not interact strongly with the given compound. In some cases (i.e. urea/choline chloride) freezing point depression can be in order of 100 °C! Organic compounds in particular have pretty high cryoscopic constants, which can cause headaches in organic synthesis (in most cases, you end up with some kind of oil which has to be purified to obtain solid product).

Elevation of freezing point is possible only if pressure is decreased, but the effect is so minuscule that it is not practically useful.