You could use a loop, but I prefer this. It works for <br /> too. (hopefully :tu:)
$description = preg_replace('/(<br ?\/?>)(<br ?\/?>)+/i', '$1', $description);
A \s* in between the brackets may also help:
$description = preg_replace('/(<br ?\/?>)\s*(<br ?\/?>)+/i', '$1', $description)...