My rule of thumb can be described in two ways:
1) Can you return things to exactly the state they were before simply by hitting the browser's "back" button once? Then use a link. Otherwise use a button.
2) Will this navigation have side effects (eg, change values in the DB)? If so, then use a button. Otherwise, use a link.
But I guess the main point is not to use buttons in your nav bar.