What are the differences and where would your use each?
There is a lot of trade-off to it.
So, NOR flash can address easier, but is not even close to as dense.
If you take at a look at a pretty decent comparison PDF.
NOR has lower standyby power, is easy for code execution and has a high read speed.
NAND has much lower active power(writing bits is faster and lower cost), higher write speed(by a lot), much higher capacity, much much lower cost per bit and is very easy for file storage use. due to it's lower read speed when using it for code execution you really need to ghost it to ram.
To quote a small section with a great table above it...
NAND flash is cheaper, so you want to use it if you can. The drawback is that it's not as reliable. NAND flash is faster at most operations, with the notable exception being small random access reads. If you want to read a couple bytes from a random address in memory, NOR is faster. For large memory reads, NAND does reasonably well, and actually beats NOR for large enough chunks.
Most embedded operating systems include code to correct the errors in NAND Flash. There are also microcontrollers with hardware error correction. The real problem happens at boot time-- first-level bootloaders don't have error-correcting code, and they haven't configured the memory controller to run hardware ECC yet. It's a bit of a chicken-and-egg problem-- you can't load the ECC code without errors because you haven't loaded the ECC code yet.
To get around this problem, some memory manufacturers will specify a certain region of the chip that is guaranteed to be error free (the first 4 kB, or something like that). You put a bootloader with software ECC there (like U-boot), read it out with no errors, and then use it to read out your OS kernel, correcting errors as you go. You can also store a bootloader in a serial flash, and just use NAND flash for large stuff like an OS kernel or filesystem.
I've found this Atmel application note useful: http://www.atmel.com/dyn/resources/prod_documents/doc6255.pdf
NOR allows for random access, but NAND does not (page access only.)