Key strengthening or key stretching is used to add a work function to key generation in order to prevent brute force attacks on the key. The attack itself is probably best referred to as a brute force attack, which I poorly worded.
I did not claim that I'm an expert in cryptography, but I will tell you that my graduate course in formal cryptography has taught me enough to explain something as basic as key strengthening.
So, mukyu, perhaps you'd like to fill us all in with your detailed explanation of the number theory behind the Blowfish key schedule.