You are in the process of waiting there and the period (from the past, one hour ago, until now) has not finished. You are waiting for someone and he still hasn't arrived. You tell someone, "I have been waiting here for an hour, and my friend still hasn't arrived. I wonder how much longer he will take."

I have waited here for an hour.

At some unspecified time in the past you have waited there for the duration of an hour. When walking through the city, passing a square, your friend might say, "I remember that square. I have waited there for an hour to get a taxi."

IvanhrI have waited here for an hour. (= I arrived an hour ago and my waiting has just finished)

I wouldn't use the present perfect to refer to an event which happened earlier in the past.

And I wouldn't use the Present Perfect Simple to say how long something lasted (apart from stative verbs), as this tense focuses more on the result of an activity, rather than the activity (or its duration) itself.

I would use the Present Perfect Continuous to do so, even if my waiting has just finished:

- I have been waiting for you for an hour now! Where have you been???- I have been waiting for him for an hour now. I guess he might have forgotten about me.

With some verbs that denote a state rather than action, I would use the Present Perfect Simple though: