(Note: I'm a British English speaker, and there may be UK/US usage differences here. There may also be differences in personal preference.)
I would generally use "congratulations on". In cases such as "Congratulations on/for your marriage", or "Congratulations on/for...