(Note: I'm a British English speaker, and there may be UK/US usage differences here. ) I would generally use "congratulations on". In cases such as "Congratulations on/for your marriage", or "Congratulations on/for your recent promotion", "for" sounds wrong to me.
New words, one handy idiom, and a 2-minute quiz — delivered to your inbox to keep your streak alive.