They both essentially mean, "well done".
Only Australians say, "good on you".
If a situations deserves a, "well done" people say, "good for you" (in Australia they say good on you) but if something has a health benefit, like vitamins, THEY are good for you.
It can also be used for financial advice, "if you change from one bank to another, and you get a higher interest rate on your savings, it would be good for you". (ok, arguably, "better for you").
Simple answer = same meaning, different parts of the world.