HyperThreading is a technology used by Intel CPUs that makes it possible for them to execute two threads at the same time. The computer is tricked into believing that an extra CPU is present. But since this second CPU share the cache, bus and all other physical aspects of the first CPU the performance is not the same as it would be with two true CPUs.
According to Intel the gain of HyperThreading using can be anywhere between 10-30% in performance depending on the software. The fairly low number is because of the fact that they use the same physical parts. E.g. If two threads are to be executed the first CPU will try to make the most of the resources available, but since the second CPU wants to execute another thread at the same time we have a conflict. Either the second thread waits or the first one share its resources thus slowing down. There is however still a gain in performance. You could compare it two teams of builders. One team consists out of one large person (the CPU without HyperThreading) and the other consiste out of two smaller persons (the CPU with HyperThreading). However if the second CPU is not issued a stop command (HALT) it will not go idle thus still steal resources from the first. If you are using a Windows based system it is recommended that you use Windows XP or newer since older versions are not as aggressive at assigning stop commands.
A common belief seems to be that SMT (Simultaneous Multithreading Technology) only affects software that has been optimized for it. I.e. the software has to support multithreading to gain from the"extra" CPU. That is not true. Even though if the software may not be multithreaded there will be a minor gain in performance as well.
Available on the Pentium 4's with Northwood core that uses 800 FSB (Also the 3,06 Pentium 4 which has the 533 FSB.), and all Prescott based CPUs, including the ones with 533 MHz FSB.