Well if for some reason you have some kind of error, you don't want your visitors seeing that ugly error message, so you would use the @ symbol.
I'd like to say it isn't good practice when building a site, becasue you want to know what your errors are. But a better way to know your error is to use mysql_error(). For example:
$query = mysql_query("DELETE FROM table WHERE id='1'") or die(mysql_error());
If that query for some reason fails, mysql_error() will let you know exactly what the problem is, and you'll be able to fix it a lot easier than if you weren't using mysql_error().
However when you're done building the site, you will probably want to remove that in case some unexpected error comes up. You could then put the @ sign in as insurance, but I never go back and do that. Just personal preference.
Hope this helps.
Cgraz