Hello Roy Messinger,
Yes, your scenario should be possible, just I am not aware of reference implementations like this one. KBOOT might be useful for the bootloader part.
Depending on your IDE/compiler, you need to link the bootloader at the beginning of flash and then each of the 2 images at a different offset in flash memory, one after each other. Then in the bootloader's code you can add code for the decision making of which application image to execute (e.g. based in an external button, a variable in RAM or Flash, etc).
The required hardware depends on which interface you choose for the firmware update (UART, USB, I2C, SPI).
Regards!
Jorge Gonzalez