With 过, the action is just "an occurrence in time".
With 了, the action comes with a "tangible result" (related to the object or to the subject) which has a status of more than just being "an occurrence in time".
If you just started learning Chinese, I would advice you to to use 了 when you want to indicate a past action. You can use 过, however, when you want to "attenuate the result or consequence" of the action (i.e. the result or consequence is irrelevant). For example:
- 谁吃了我的粥?(Who has eaten my porridge?)
1a. 谁吃过我的粥?(Who has been eating my porridge?)
The consequence is serious in (1) - my porridge is gone, but not so in (1a).
If you called David yesterday to invite him for dinner (you have a purpose, and therefore expecting a result), you use 了. If you called him yesterday and just chit-chatted a bit, you use 过:
- 我昨天给大卫打了电话,他说明天晚上来。
2a. 我昨天给大卫打过电话,没什么,我们聊聊而已。
How about (3) and (3a)?
- 我想找大卫,我给他打了三次电话,但是找不到他。
3a.我想找大卫,我给他打过三次电话,但是找不到他。
(3) sounds more urgent because the 3 calls are interpreted as "the effort I put in to get the result". In (3a), I just tried my luck to call him 3 times.