I think one of the most powerful usecases of serverless is for something like an event bus. This could be where you setup a bunch of webhooks from different services to call your serverless functions, which then act upon the request. A simple example of this could be GitHub webhooks to call Slack (yes this integration is already a one-click install, but what if you wanted to change the logic in-between?).

Being able to scale at the function level allows very efficient and tight control, since you can fine tune the resources available to each part of the app. A great explanation of this I saw (not sure where) was to think about the different methods for an API endpoint. Using serverless allows you to scale just the GET method for instance, or perhaps the GET and POST. Not only can you do this with fine granularity, you can do it on the fly too. If you're getting a lot of GET requests for a resource, but don't want the overhead of creating another entire instance, you can just scale up the GET function.

If you wanted to get started with serverless for free, check out OpenFaaS - it's a cloud native serverless framework which can be deployed on Docker Swarm or Kubernetes, avoiding vendor lock-in. The community is very friendly and open to suggestions so if there's something you want, just open an issue!