I haven't been able to find clear info on Hyperthreading, but from what I can tell it appears that with Hyperthreading On; 1. per core performance is slightly reduced 2. you can run two threads per core, but there is some contention between threads
So, generally, if you have less busy threads than cores, you should leave it off and if you have more busy threads than cores you should turn it on. Does that sound right? I assume that newer Nehalem/Core i7 HT (otherwise known as simultaneous multi-threading, SMT) just has less contention between threads than the older P4 HT, but the busy threads vs core principle remains.