It all depends on the i7 model you own, the overclock you have on it and the CPU cooler installed. Intel says never to go over 100°C on the cores...
As for normal temps...Anything between 25-45 at idle is very good. When stressed with Intel Burn Test, if your temps never go over 85-90 that's good too. But remember...the higher your temps are, the faster your components will degrade. For example, a processor that never goes over 50°C will last longer that one that's always in the 80s. I've got a build that has an i7 920 overclock at 4.2GHz (200x21) with 1.28750v. I'm 24/7 stable, and my idle temps are 40-45°C. When stressed with IBT, my temps are in the high 80s. But remember...that's just synthetic benchmarks/stability tests. In real life, it's very rare for an i7 to be stressed at 100%. When I'm gaming, my CPU is never used at more than 50%, and my temps never go over 70°C.
Anyway, the best CPU temps varie from person to person. Some will tell you never to go over 80 (I've seen some say over 70). As for me, I stick with what Intel says: never over 100°C.
Hope this clarified things for you,