RELENG_4 is the -STABLE branch. This is the development branch for 4.x. All new developments in 4.x go here, which means that there are times when things break and don't work. But, new features, bug fixes, security fixes, and the like are developed here. This code is considered stable, but not always production quality.
RELENG_4_8_0_RELEASE is a snapshot of RELENG_4. This is 4.8-RELEASE. This code is considered stable and ready for everyday production use. This is what is on the 4.8 CDs.
RELENG_4_8 is the security branch for 4.8-RELEASE. Only security fixes and major bug fixes go into this branch. This is the branch that most people should be using as it is the most stable, most production ready, and includes all major security fixes since 4.8-RELEASE.
The only time you should be running RELENG_4 (or -STABLE) is if it includes specific hardware or software support that you *need* that is not available in -RELEASE. Or, if you want to provide help with testing and development.
Stolen wholesale from text provided by Phoenix, a moderator on the now defunct BSDForums.org site, now named www.daemonforums.org.