Wolfram|Alpha does this pretty well, although they moved the step-by-step solver to the paid version quite a while ago and I've only tried the early free version. They also have an extensive knowledge base and other resources that make it very easy to understand even completely new concepts.
And Mathematica of course does everything Wolfram|Alpha can.