External vs internal pullup
You can use either the internal or external resistor in normal application.

Each method has each own advantages:

Internal resistor


Pros: flexible to change by changing the code
Pros: Reduce PCB size
Pros: Reduce cost (very small)
Cons: It may make MCU hot


External resistor


Pros: Reduce heat for MCU
Cons: Not easy to replace when it is built-in PCB
Cons: Increase PCB size


Besides, Pull-up and pull-down resistors are not only used for INPUT port but also for OUTPUT port. In the case of OUTPUT port. The external resistor has another advantage:  flexibility in connecting devices with different I/O voltages. For example, in I2C hardware see I2C at the Hardware Level.

NOTE: As far as I know, at the writing time, Arduino library does NOT support INPUT_PULLDOWN