You can use both label and icon.
You have to add a space between the icon and the label, otherwise they look bad. The extra space after the icon doesn't matter if the label is empty. 
Yiistrap does it the same way: https://github.com/crisu83/yiistrap/blob/master/helpers/TbHtml.php#L3078