What are the use cases for application load balancers and Lambda?

The problem this solves is that it allows yet another way to use Lambda functions to handle HTTP requests and generate responses.

...but you can already do this with either API Gateway or CloudFront's Lambda@Edge feature.

So, what problem does it really solve?

Simplified integration of Lambda request handling into server-centric applications that use ALB.

While this feature offers, in some sense, a subset of API Gateway's capability, it differs in an important way -- by allowing you to easily "mount" Lambda functions into a specific set of paths in your existing EC2-based application.

You can pick off specific path patterns and send only those to the Lambda function(s) -- under the same domain without any cross-domain complexity, and without needing to proxy the request through your EC2 instances -- while continuing to serve the rest of the app from EC2. Avoiding cross-domain resources within an application simplifies many things, not the least of which is cookies and sessions.

While you could also use this in some cases to replace what API Gateway can do, the idea isn't really that you'd set an ALB exclusively for Lambda functions, although of course you could do that.