When you change the program, regression testing tests for things that should not change. If you automate your testing process, you can easily catch bugs that are newly introduced. Regression testing tests for changes. Typically a regression test compares new output from a program against old output run using the same data. Unless, the reason for changing the program is to alter the output, the results should be identical.
Lets say the program was to add two numbers together.
At first glance, it appears obvious that a simple review of the output will catch the mistake. Mistakes like this do happen. There is no guarantee that they will be caught by the right person and at the lowest cost. In the above example, a regression test would catch the problem. Anytime you add new features.