All computer algebra systems solve integrals step-by-step, but they just use different steps to most humans. For integrals yielding only compositions of elementary functions, most use a version of the http://en.wikipedia.org/wiki/Risch_Algorithm" .
http://www.wolframalpha.com/" has a "Show Steps" button for most elementary math problems which I think is just a very clever set of replacement rules (pattern recognition). Note that Mathematica (which underlies WA) does not actually use these steps in the calculation - they are an extra added on top.