Mass Storage for Embedded Applications
For that range of sizes, your best option is probably SD. It's reasonably easy to interface with, readily available in large capacities (up to 256 GB now!), and can be easily read from a computer if need be.

Depending on your exact needs, eMMC may also be an option. It's essentially an embedded variant of SD, with some slight modifications.

NAND flash is also an option, but I wouldn't recommend it. Raw NAND flash doesn't include any translation layer, so you end up having to manage write leveling and bad blocks yourself. It's a huge pain.