My reason for automating testing is that it means I can get consistent, repeatable, and timely feedback that what I've just done is correct.
Manual testing also has its place, but it is hard to be as convinced that it's covering everything properly, and certainly doesn't do so as quickly as automated testing.
For example, part of one of my projects is an optimisation algorithm which uses some heuristics to walk around the search space looking for good solutions. There are now approximately 40 different heuristics which can be used individually or in various combinations, and every meeting with a customer seems to involve adding a new heuristic or extending an existing one. I need to be absolutely certain that none of this work for one customer will cause a regression for another customer, which involves running the algorithm on a few hundred different cases and checking that the output is (no worse than) it used to be.
It would be impractical to ask a manual tester to run all these test cases by loading the GUI, opening the input file, and clicking 'run', at least not often enough to be a useful feedback mechanism. The tests are typically run tens of times per day for the short tests and every night for the more heavyweight tests. With a manual process, full feedback would probably take a couple of days, and fixing a bug introduced a couple of days ago is a lot harder than fixing a bug introduced within the last half-hour.
It would also be very difficult to ensure that any 'by-eye' checks of the results are as good as they used to be, so the results checks have to be automated. But if you're going to automate that, you may as well automate the whole thing. It's not hard.
A further advantage of automated testing, from the experience of working with a project that had none, is that if you have manual tests which are not extensively documented, then when the project lies dormant (in 'maintenance mode' apparently) for a year and then restarts active development nobody can quite remember how to do the testing or what the expected outcomes were, and you end up introducing a whole pile of silly regressions that take ages to pin down. On the other hand, if you are going to document your tests in enough detail that they can be picked up a year down the line, you have essentially already automated them: you just need to make the documentation executable.
In my experience, you need to start testing roughly 2 hours before the point at which you suddenly realise that you should have started testing 2 hours ago :)