What gives Indian curries the sweet and creamy taste and fragrance?
Well I do the following for punjabi gravies-

I add poppy seeds, cashew and melon seeds in milk, soak them for some time and then grind these in blender.
This gives it a creamy texture and that white shade in the red gravy
I cook the onions properly, as well cooked onions give a sweetened flavor.
To some paneer gravies I add little sugar.
I know it sounds weird but it does give gravy a different and tasty flavour.
Adding cream from also gives it a sweet flavor.
For that spices flavor, I will suggest to roast the spices dry first and then grind them, this will give a flavor as well as fragrance to the gravy.

Though I am not much aware of dhaba flavours but making punjabi gravys by these points will surely give better flavors than restaurants