There's a bit to unravel here. The two examples are quite different and specific, I hope to be able to still give you a broader understanding. Feel free to ask back or edit the question.
"(Jemanden) etwas tun lassen" means "to have somebody do something". It can also mean "to let somebody do something", depending on context.
"Wir haben ein Haus bauen."
is not a correct German sentence. The correct way to put this in perfect tense would be
Wir haben ein Haus gebaut. (We have built a house.)
In the literal sense, this means that we built the house ourselves. Since nobody does that any more, this is nowadays often used in the sense of other people doing it for us with us ordering and paying.
Wir haben ein Haus bauen lassen. (We had a house built.)
literally means that we let other people build it. That is the difference that "lassen" makes.
What also makes this sentence potentially confusing is that it is correct perfect tense, it just uses "lassen" instead of the participle "gelassen" that you would expect. This is sometimes done with modal verbs.
As an aside: in a different context, "lassen" can also mean "to let", "to allow":
Wir haben unseren kleinen Sohn am Strand eine Burg aus Sand bauen lassen.
which can either mean we told him to built it or we allowed him to build it.
- haben with wollen
The example is specific to the use of haben together with wollen. If you have a more general question about haben, feel free to edit your question.
In the case of wollen, it's the same as in English. The verb "to want something" pretty much implies "to want to have something" if no other second verb is submitted. For example, a thing you can say is "I want to cuddle the dog", but if you just say "I want the dog", then you generally mean "I want to have the dog".
Er will etwas zu essen
is just a shortened form of
Er will etwas zu essen haben
with the same meaning, but the latter gramatically takes the more general form of "wollen" + [verb in infinitive form].
Er will [object] [verb].
Er will [etwas zu essen] [kaufen].
Er will [den Hund] [streicheln].
Er will [etwas zu essen] [haben].