The at sign is used to hide error messages. As far as I see, there is absolutely no use case or excuse for using it.
The most common place I have seen it used is for suppressing mysql errors when working with a db. Then the user checks the response instead and prints an appropriate error message.
Example
I have also seen it used when working with ftps and sftps.
But I agree with you that I find its uses limited. If one ends up in a situation where one feels the need to use the @-sign at own produced code, I think it's time to rethink the solution.