[What is hyper-threading and how does it work?](http://superuser.com/q/122536/116475) does a good job at explaining what hyper-threading is:

> Hyper-threading is where your processor pretends to have 2 physical
> processor cores, yet only has 1 and some extra junk.
> 
> The point of hyperthreading is that many times when you are executing
> code in the processor, there are parts of the processor that is idle.
> By including an extra set of CPU registers, the processor can act like
> it has two cores and thus use all parts of the processor in parallel.
> When the 2 cores both need to use one component of the processor, then
> one core ends up waiting of course. This is why it can not replace
> dual-core and such processors.

It is useful if you plan to have more threads running than the number of physical cores, which is likely to be the case, but the performance gains won't be miraculous though.