That implied volatility you are observing was calculated using the standard Black-Scholes model (BSM). As we all know, no model is a perfect representation of reality. The variation (or skew) you observe is a consequence of the model being wrong.
Let's think about the implications of BSM not being exactly correct and everybody knowing that fact. In particular, an important result is that even if you were to plug in the "right" value for every parameter, you would not get the market option prices. After all, if you did always get the right prices, the model would be right at least in that limited sense.
Any model, including BSM, can be run "backwards", by which we mean here that it can start with an option price and derive an implied parameter. If the model has M parameters p1, p2, ..., pM that are normally used to find a price V, then we can also choose any one of the parameters, call it pn, to derive from an observed price W (normally by root-finding techniques).
It so happens that for the BSM most of the parameters are reasonably easy to observe (strike, interest rate, etc.) while volatility is a rather more mysterious quantity, especially because the BSM needs future volatility rather than past volatility. Therefore, the market practitioners tend to pick on that parameter and talk about implied volatility even though in principle we could do everything in terms of, say, implied dividend yield.
In any case, since the model is wrong, we don't expect to get the exact right option prices when we run the model forward, and therefore don't expect to get one "right" parameter when we run it backward. That's why you see variation in volatility by option strike.
Now, as to the exact shape of that variation (decreasing implied volatility with strike), there are quite a few explanations and they are not mutually exclusive. For example, a somewhat more credible model than BSM is Black-Scholes With Jumps (BSJ), where the underlying price can take a sudden dive. You need extra parameters to describe the jumps of course, but the result is a model whose implied volatility skew is "flatter". Because those jumps are to the downside, they show up as higher prices(=higher implied volatility) for the low-strike options.
Other explanations involve transaction costs, discrete stock price processes, bankruptcy, stochastic volatility, market psychology, etc.