As the other answers mentioned, it mostly comes down to which works well with the language/system you are calling from.
However, you asked for a specific example where the SOAP API showed its true superiority over the REST API!
Joking - use the right tool for the job!
It's important to consider the types of call you will be making against the APIs. For instance, I recently ran into a scenario with a dozen or so dirty records that needed to be updated - Choose Your Own Adventure - Dirty Dozen showdown with the REST API vs SOAP API vs BULK API.
Long story short, the REST API (as it was at the time), was super inefficient at doing what was a trivial call with the SOAP API. The Bulk API was another option, but there was a lot of ceremony to get it going.
That said, Salesforce is actively refining the APIs all the time. They will likely close the gap between the APIs in the future (forward looking statement blah-de-blah).
Another quick example of when you might use the SOAP API over the REST API - direct login with a stored user name and password. This isn't such a great example anymore as there are other authentication options available such as the OAuth flows.
TL;DR: Use the API that aligns best with the system/language you are invoking it from. Beyond that, consider the actions you want to perform against the API. They all have their strengths and weaknesses.
See also: