Они используются для устранения неоднозначности имен переменных и абсолютно необходимы, если вы используете массив в строке в двойных кавычках, например:
$SQL = "Select * FROM table WHERE field LIKE '{$value[5]}'";
Не будет работать без брекетов.
Вот еще один отличный пример из PHP.net
$beer = 'Heineken';
echo "$beer's taste is great"; // works; "'" is an invalid character for variable names
echo "He drank some $beers"; // won't work; 's' is a valid character for variable names but the variable is "$beer"
echo "He drank some ${beer}s"; // works
echo "He drank some {$beer}s"; // works
http://php.net/manual/en/language.types.string.php