ATI OpenCL V.S. NVidia Cuda Cores First of all, i would like to say, i really don't want this thread to be some debate about your favorite video card manufacturer. So please just take that elsewhere.

I have heard from a lot of people that ATI &amp; Open CL is much better for mining than NVidia with Cuda.

When i first heard this i was kind of shocked, because pretty much everything i have ever heard in the past was that Nvidia's Cuda was quite powerful at solving mathematical problems, and I even had a couple university professors that swore by Nvida cards over ATI for this very reason.

So what is it, about the Bitcoin and Litecoin algorithms that make it so much easier for ATI cards, or should i say harder for NVidia cards?  I want to understand the technical reason behind the common knowledge.

Thanks.
In many ways, it is just coincidental that GPUs are going at hashing. It doesn't surprise me that some GPU engines are a better fit than others. A particular GPU might be very good at some types of mathematical operations (or rendering, for that matter) but might not be particularly good for hashing.
This is discussed in some detail on the bitcoin.it wiki:

Firstly, AMD designs GPUs with many simple ALUs/shaders (VLIW design) that run at a relatively low frequency clock (typically 1120-3200 ALUs at 625-900 MHz), whereas Nvidia's microarchitecture consists of fewer more complex ALUs and tries to compensate with a higher shader clock (typically 448-1024 ALUs at 1150-1544 MHz). Because of this VLIW vs. non-VLIW difference, Nvidia uses up more square millimeters of die space per ALU, hence can pack fewer of them per chip, and they hit the frequency wall sooner than AMD which prevents them from increasing the clock high enough to match or surpass AMD's performance. This translates to a raw ALU performance advantage for AMD:

AMD Radeon HD 6990: 3072 ALUs x 830 MHz = 2550 billion 32-bit instruction per second
( Nvidia GTX 590: 1024 ALUs x 1214 MHz = 1243 billion 32-bit instruction per second

This approximate 2x-3x performance difference exists across the entire range of AMD and Nvidia GPUs. It is very visible in all ALU-bound GPGPU workloads such as Bitcoin, password bruteforcers, etc.
Secondly, another difference favoring Bitcoin mining on AMD GPUs instead of Nvidia's is that the mining algorithm is based on SHA-256, which makes heavy use of the 32-bit integer right rotate operation. This operation can be implemented as a single hardware instruction on AMD GPUs (BIT_ALIGN_INT), but requires three separate hardware instructions to be emulated on Nvidia GPUs (2 shifts + 1 add). ?This alone gives AMD another 1.7x performance advantage (~1900 instructions instead of ~3250 to execute the SHA-256 compression function).
Combined together, these 2 factors make AMD GPUs overall 3x-5x faster when mining Bitcoins.

This is also discussed in a bitcoin talk thread.