It comes down to what you mean by 'button'.
If you are talking about an actual form button, then you will want to look at the drupal form API for how to go about making forms.
If you are talking about making something that looks like a button, then I would still be using l(), but pass along something like "class" => "my-fancy-button" to the attributes array, then style the my-fancy-button class with CSS - either simply with a bg colour and some borders, or with a more complicated image background.