Ich hätte gerne
This expression (usually) requires a noun following it.
Ich hätte gerne drei Semmeln
Ich hätte gerne einen Freund
But:
Ich hätte gerne gezahlt
This last one is substantially different from the first two. Those first two are the subjunctive II forms of haben followed by the word gern(e) (to make the sentence more polite), and are a polite way of asking for something you can buy (Semmeln) or expressing a wish (der Freund). Gern(e) is mandatory.
The last one is a subjunctive past form of zahlen, implying that the guest at the restaurant already asked for the bill at least once, and wishes that the waitor gets a move on.
Ich würde gerne
This expression requires a verb following it.
Ich würde gerne zahlen
Ich würde gerne Ski fahren
Ich würde gerne Urlaub machen (or: Ich hätte gerne Urlaub; see above)
Generally, this can be described as the more colloquial form of subjunctive II, and all sentences of this form can be replaced by a subjunctive II construction (Ich zahlte gerne; ich führe gerne Ski, ich machte gerne Urlaub), although it would come across as anything between old-fashioned and plain awkward.
Here, the gerne is required or the meaning of the sentence changes:
Ich würde Ski fahren
does no longer imply that the speaker wants to go skiing. It can mean that s/he prefers skiing, even though the rest of the group will go snowboarding, or it can be the answer to a question like Imagine you had a day off work. What would you do?
Note also that some dialects hardly use würde, and instead use tun or others as an auxilliary verb for subjunctive II constructions:
I dad gern Ski fahrn (Bavarian)
= Ich täte gerne Ski fahren (literally transformed into standard German)
Ich möchte
This is originally the subjunctive II of the verb mögen. However, it is also used as a more polite form of saying ich will. Compare it with e.g. English, where I want is considered impolite, but I would like (same meaning but auxilliary construction) is considered polite.
It can be used both with verbs and with nouns:
Ich möchte ein Eis
Ich möchte Schlitten fahren
Ich möchte Blut spenden
Ich möchte schreiben
Ich möchte einen Kaffee
It is definitely the most flexible of all constructions here, as it can also easily be negated:
Ich möchte keinen Streit.
Ich möchte keinen Kaffee.
Ich möchte nicht kämpfen.
(The others can be negated, but wouldn't usually be used in a negative form.) If you use möchte, you can add an additional gern(e) to make it sound slightly more polite
Ich möchte gerne einen Kaffee
However, I would most likely not use these sentences with gern.
Note that sometimes this has a 'childish' ring to it: One of the first things parents attempt to teach their children is to say ich möchte ein Eis instead of ich will ein Eis.
Tl;dr:
When in a shop or a restaurant, I would order/buy stuff using ich hätte gerne. When expressing wishes that are shorter in verbal form (e.g. pay), I would use würde: Ich würde gerne zahlen. If either my sentence doesn't fit into these two subcases, or if I want to express a negative form, I would use möchte.