CentOS 4.x uses the SELinux enhancements. 3.x does not.
CentOS 4.x uses the 2.6 kernel, and 3.x uses the 2.4 kernel.
If your application is well supported on 4.x, then use it. However, because RHEL is going to be a supported product for a very long time, there is much less urgency to go with the latest than with some other distros (especially Fedora). Also, consider using 3.x if your using an older application.
M5Host covered the major differences, so I'll just report my experiences:
CentOS 4 (I use 4.2) is great. It has great stability, quick RPM releases, and is very fast. I use it on all of my new production servers.
Just as a note: If you installed say 4.0 or 4.1, the moment you run up2date, your version will be changed to 4.2 as the up2date contains all of the core updates. So don't bother yourself to download any ISO's other than 4.0 if you choose 4.0.
Another note: On the aspect of 3.0 and 4.0 using different kernel version, the 2.6 kernel has always proven to provide a MUCH faster system in my experiences.
There is no significate difference between 4.1 and 4.2. They are just what redhat does when they release culumative patches.
Steven Ciaburri | Industry's Best Server Management- Rack911.com
Software Auditing - 400+ Vulnerabilities Found - Quote @ https://www.RACK911Labs.com Fully Managed Dedicated Servers (Las Vegas, New York City, & Amsterdam) (AS62710)
FreeBSD & Linux Server Management, Security Auditing, Server Optimization, PCI Compliance