Il all depends on the gender and number of the noun that follows.
If the noun is masculine and singular: use mon
If the noun is feminine and singular: use ma
If the noun is plural: use mes
But of course there are exceptions.
If the noun is feminine and singular, but begins with a vowel, use mon.
For instance, "amie" (girlfriend) is feminine. But we'd say mon amie and not ma amie because it begins with a vowel.
The main reason is that it's way easier to pronounce that way. With the liaison, it sounds like "mon namie" which is way easier to pronounce than "ma hamie" would.
Something to consider about your last point is that it's probably "easier to pronunce" in the sense that you're more used to pronouncing it. But it could be argued that holding your mouth in the same position (e.g. as in ma hache) is easier than having to move both tongue, mouth and velum to produce mon amie. (I think there's actually not much objective data on what constitutes "effort" in terms of pronunciation.)
Another thing to think about are cases such as:
mon achat (liaison) ma hache (feminine with no liaison-- at least for some speakers) mo(n) HLM / mon HLM / ??ma HLM (either masculine or feminine, with or without liaison)
(P.S. Most learners don't need to get bogged down in this level of detail-- unless you're studying for a degree in French, just follow what Frank said above!)