What is the best way to generate a negative supply rail using a microcontroller?
A common method for generating a negative supply rail for operation- and instrumentation- amplifiers (which don't require a lot of current) is with a capacitive charge pump.  A classic part for this is the TC7660.  The MAX232 can be re-purposed for this too, because it generates ±10V in order to transmit the true RS-232 levels.

There is also a way to get negative voltage from microntroller I/O and discrete components.
 (source)