Question: Is there any significant performance trade-off between buttons wired with the internal vs external pull-up/down resistors? I see a lot of tutorials demonstrating the use of external resistors when wiring a simple button, like [this](http://www.arduino.cc/en/Tutorial/Pushbutton) and [this](http://arduino.cc/en/tutorial/button). But since the Arduino/AVR includes internal pull-up resistors, you can wire a button without any external resistor as demonstrated [here](http://arduino.cc/en/Tutorial/InputPullupSerial).

Is there any good reason to complicate your design with an extra resistor?

Answer: 
If you are using the pin as an input in close proximity to the Arduino there is little reason to use an external pullup.

There are a number of factors to consider.

If the switch is some distance from the chip and/or in a noisy environment it will be more susceptible to interference as the internal pullups are high impedance (20kΩ to 150kΩ depending on model).

If the pin is used as both input & output the pullup can reduce the voltage swing.

In other applications e.g. Raspberry Pi the state of the pin between boot and software initialisation can be significant, but this should not be an issue with Arduino.
I think it depends on the application you're going for. A simple switch probably doesn't need a resistor, since it doesn't require the chip to provide any specific voltage or current. 

If you're trying to run an LED or something that requires a specific amount of current or voltage, then you may be better off supplying the power connection & resistor rather than relying on the chip to provide the proper power to the device.

Another situation may be where you're approaching the maximum power output of the chip that you might change to external pull-up/down resistors.