"I have a map."
Translation:У меня есть карта.
Есть is used when the focus/emphasis is placed on the existence of an object. У меня есть карта tells us I do indeed have a map of some sort. У меня карта tells us that you are referring to a specific map and you are letting us know that currently, you are the one who has it (as opposed to someone else). Basically, it means I have the map. I hope that makes sense
у меня болит голова - is totally another sentence. Here, the phrase "у меня" doesn't mean "I have"! It means the literal sense "by me". So, the phrase "У меня болит голова" is translated like "By me, the head hurts" --- "My head hurts". As you see, no "I have" here! These are different sentences!
P.s. у means "by"/"at"
Absolutely, in Russian. In English of course we say "I have" in both cases. So telling a native English speaker to always use есть is misleading. It's better to understand the subtle differences as mightypotatoe has explained and then it becomes clear that these are two different ideas in Russian.
I agree that mightypotatoe's answer is much better than mine but my answer was about only the particular case - speaking about having simple objects, like map, house, child. I thought that such big and thorough explanation can be difficult for beginners (I know this rule -- I have already mentioned it in other threads). It's a good rule for the advanced learners.