Regression testing is the part of software development where fixes implemented in previous versions are tested to make sure they haven't regressed, i.e. been undone, by the code fixes contained in the new release. Quality regression testing is dependent on coming up with adequate tests to stress the previous bug in the context of the new release to see if it still performs up-to-snuff.
So it isn't a solution unto itself but instead a way to ensure old fixes remain working through the lifecycle of the code.
One of Murphy's Laws of Computer Programming:
"Bugs will appear in one part of a working program when another 'unrelated' part is modified"