In general, it is perfectly fine to use the internal pull-up or pull-down resistors.
Disadvantage is that you can forget to enable it from software, that can cause a little headache. The external pull-ups will always be there. So do not forget to enable the internal ones and save a lot of PCB area by reducing component number.
The STM32's internal pull-up and pull-down resistors usually have a value between \$ 30\small~k\Omega \$ and \$ 50\small~k\Omega \$.
You should always check if your application needs a certain pull-up/ or pull-down resistor value before using the internal resistors. For example do not use them with I2C, as these values will be too high for that.