None of the above answers worked for me.  I am trying to use Firebug to figure out how a feature on a page is working for a site I have no control over.  Here is what worked for me.
First, got the id of the element I am clicking on from the page source, and then get a temporary reference to it by creating a watch (under the script tab):
tmp=document.getElementById("idOfElement")
Next, I assigned the current onclick value to another temporary variable.
oldfunc=tmp.onclick
Next, I defined a new onclick function.  Initially I tried putting debugger; as the first thing in the function, but this does not work!  So instead, I created an alert:
tmp.onclick = function() { alert("Ok"); oldfunc() }
Now, as soon as I click on the button the alert comes up, at which point I then click the "Break on next" button as outlined in another answer to this question.  Then I dismiss the alert and immediately I am in the debugger at the correct place.
In my case, the  "Break on next" button did not work by itself, because there are a lot of other events, just mousing over the page was causing the breakpoint to be hit, preventing me from ever clicking the button.