Original Pentium 4 CPUs used the Willamette core and ranged in speed from 1.3Ghz to 2Ghz in 100Mhz increments. They were built on a 0.18 micron process, had 256K L2, used a 400Mhz FSB, and came in Socket 423 and Socket 478 packages.
Second generation Pentium 4 CPUs use the Northwood core, built on a 0.13 micron process. They range in speed from 1.6Ghz to 2.8Ghz and come in 400Mhz and 533Mhz FSB versions. They have 512K L2 and come in Socket 478 packaging. Any speed where a Northwood and Willamette overlapped (like 1.6Ghz, 1.8Ghz and 2.0Ghz), the Northwood receives an A suffix. Any speed where both a 400Mhz FSB and 533Mhz FSB CPU overlaps, the 533Mhz FSB CPU gets a B suffix (2.4Ghz CPUs come in 2.4 and 2.4B flavors).
The second and a half generation P4 use the Northwood core, but enabled HyperThreading. They range in speed from 2.4Ghz to 3.4Ghz. There is but a single P4 CPU with a 533Mhz FSB that has HyperThreading - the 3.06Ghz. The rest are 800Mhz FSB CPUs. They still have 512K L2 and come in Socket 478 packaging. Based on the latest datasheets, all 800Mhz FSB P4s received a C suffix.
The third generation P4 uses the Prescott core, built on a 0.09 micron process. They have 1MB L2, still use Socket 478, have 533Mhz or 800Mhz FSBs, and use an E suffix to denote their core type when overlapping with 800Mhz FSB parts from the Northwood era. However, they use an A suffix to denote their Prescott cores when overlapping with existing 533Mhz FSB parts. For example, a 2.80A is a Prescott core on a 533Mhz FSB with HT disabled. Based on the latest specification update, Prescotts range in speed from 2.4Ghz to 3.4Ghz. HyperThreading is only enabled on the 800Mhz FSB parts.
This covers just the Desktop P4, not the P4 Extreme Edition or the mobile parts.
When Google isn't your best pal