To save money and time. This is done by automating test cases which need to be run over and over again with different set of data/environment/OS etc.
Interestingly, automation benefits are often not what you might expect. Smart managers will use it for the mundane testing, and then rather than layoff testers, allow them to perform more exploratory testing.
If well implemented, it can detect subtle issues, like counters that are valid with values of 1 or greater, generating issues when they occasionally reset to 0. It will identify object property naming issues that are not visible to the user. It can even track when links have taken you to from the test site to the live site.
One approach to estimated ROI savings can be calculated by the amount of money that would have been paid to a warm body to perform the testing manually, plus the estimate of the cost to the company to pacify the customer had the defect reached them.
If poorly implemented, they become projects that require more maintenance than execution, losing buy-in, and eventually failing