The curly brackets are useful/needed if you want to have interpolated variables within a double-quoted (or heredoc) string, but where the parser would have trouble identifying the variable name for one reason or another.
$foo = 1
$foobar = 2;
echo "{$foo}bar"; // '1bar'
echo "$foobar"; // '2'
It's also needed if you want to use quoted array keys within a string:
echo "Hello, {$foo['world']}";
echo "Hello, $foo['world']"; // parse error
There are those who would argue for one reason or another against ever using variable interpolation within a string, instead advocating always using concatenation. Personally, I don't lose sleep over such things and instead use whatever seems clearest/simplest at the time (or sprintf() in some complex situation) -- I have more important things to worry about most of the time. 😉