Get the i7 if you're not concerned about price.
And FYI, here are a few terms:
Clock speed: Measured in Gigahertz. How many times per second the processor can start to calculate new stuff. Usually it's waiting most of the time, so in that case higher GHz would help A LOT.
Turbo Boost/Turbo Core: If, for example, you have your 2GHz i7, but it's running a single-core application, those 3 cores are on standby, doing next to nothing. Since you'll have a little heat and energy headroom, that 1 core being used can clock itself up, e.g. 2GHz --> 2.5GHz.
HyperThreading: Think of it as CPU emulation. 1 core can act as 2, so a quad-core i7 computer can appear to have 8 processors. When the CPU is doing lots of weak work, HyperThreading helps immensely. If the CPU is at 100% on every core, HyperThreading will actually make it slower because it can't do the work faster, but clock cycles are used to do the "emulation".
Now for examples:
Turbo Boost: You have 4 guys to carry bricks across a river, but only 1 can go at a time. With a food supply for everyone (LOL), the 1 guy can eat more and therefore do the work faster.
HyperThreading: You have 4 people carrying bricks. If the bricks are HUGE, then splitting 4 full-powered people into 8 half-powered people wouldn't help, as 2 people would have to carry 1 brick. However, if you're carrying tiny bricks, each person, whether full or half-powered, can carry as many bricks as can fit into their arms.
Good uses of HyperThreading: Multitasking, calculating different equations at the same time, video encoding
Where you should turn HyperThreading off: Games, Emulation, etc.
Since I'm a huge gamer, I prefer to leave it off.
And also be aware that some video encoding apps only use 1 core, so HyperThreading wouldn't help at all.