If you are hooking up a switch of some kind, you can eaily make use of the internal pull up resistor. Usually we use a switch to turn on the electricity. You push the button and the line goes high. and you would need a pull down resistor to tie the input low. But we also make the electricity go the other way. You use the pull up resistor to tie the input high. You hook one end of the switch to the input and the other end to ground, then when you push the switch the input goes low. Then in your software you look for the input to go low when the button is pushed versus high.
the Arduino examples they always seem to use an external resistor
"internal pullups" are sort of mysterious. ("I Write to the pin even though its set to be an input?")
a external pullup/down configuration it portable to other cpus and/or situations where an internal pullup may not be available. (for example, if you MUST use a pulldown for some reason, you've just discovered that there is no internal pulldown.)
they always seem to use an external resistor, any idea why?
The other thing is that the internal pull up resistors are only weak, about 30K, some applications require a stronger pull up to give more noise margin.
No micro controller I know has them. The only place I have seen them is in large FPGAs.
Pull up resistors are the more common because that is what you need 99.99% of the time due to the nature of TTL inputs (and logic inputs in general). The ATMEGA is some what of an exception:-
In having an input structure that will work with reasonably high values of pull downs.
In having a large number of naive users that think pull downs are more logical.