Both are correct, and are interchangeable in everyday conversation. If you want to nitpick the connotation, 'congratulations on...' implies an occasion or the culmination of one's efforts, while 'congratulations for...' simply implies '... for this reason'. Don't worry if that didn't make much sense. As I said, the two are practically interchangeable. 'Congratulations on...' is certainly more common today.