BJT or Mosfet as Cascode
You want to use MOSFETs if you want maximum output resistance. Draw the small signal model and see for yourself. Try stacking N BJTs vs N MOSFETs to form Cascodes and see the limiting case for Rout. Because of a BJT's rpi, maximum output resistance is limited as you stack more and more stages. For MOSFETs the only practical limit is the voltage rails. 

Edit: Clarification for the incorrect downvote

For BJT's forming cascodes by stacking ideal transistors it not that beneficial as the stack grows because the resistance rpi compromises the resistance boost of the cascode structure. So as the BJT cascode stack tends to infinity the output resistance tends to rpi and NOT infinity.