Take a look at Maxim, ie MAX50x5. Start here:
h//p://para.maxim-ic.com/ss.asp?Fam=DCDC_All&Tree=PowerSupplies&HP=PowerSupplies.cfm&ln=
There are many others like On-Semi ...
Depends of price and size what you need, perhaps bobcats solution is cheaper, it depends on the rest of the design.
I have seen a controller from Maxim (MAX1626) which is very attractive & neat in switching between 3.3V/5V.
**broken link removed**
However, it looks expensive from a manufacturing point. Thus, I'm wondering anybody manage to do that cheaply using discretes ?
An LDO doesn't seems to be suitable for high current and huge difference in input & output voltage due to heat dissipation. For example, (9V-5V)*2A & (9V-3.3V)*2A.