The passato prossimo, which corresponds very often to the English present perfect, is formed, as in English, with an auxiliary verb and the past participle.
The auxiliary verbs as well as the modal verbs do not have 'a meaning', do not describe an action in themselves. They only serve to form the compound tenses.
Concerning the auxiliary verbs however, there is a big difference between English and Italian. In English the transitive verbs, those who have an direct object (I eat an apple) are conjugated with the same auxiliary verb as the intransitive verbs, those verbs who can't have an object (I swim). That's not the case in Italian. Simplifying, we are going to talk about the details later, you can say that the present perfect / passato prossimo of the transitive verbs is formed with the auxiliary verb avere / to have, but with essere / to be in the case on an intransitive verb.
Transitive verb: mangiare / to eat
Io ho mangiato una mela.
I have eaten an apple.
Intrasitive verb: andare / to go
Io sono andato a Roma.
I have gone to Rome.
Once again: Intransitive verbs are verbs which cannot have a direct object. A direct object is the scope of an action. In the sentence 'I see him' 'him' is the scope of the action. To put it more clear: If you add a direct object to an intransitive verb you get a sentence which doesn't make any sense.
I swim the purse.
I go a pizza.
The auxiliary verbs, as the modal verbs, are completely irregular. It is a strange kind of phenomenon, but in all languages the most irregular verbs are the most used verbs. (that's true as well for English to be => I am / you are / he is etc.).