I have made dahl from scratch many times, dry roasting the whole spices separately and pounding them in a mortar and pestle, but I don't think I've ever got the spice ratios quite right. Plus and perhaps more importantly, spices need to be fresh and a great curry has many different spices in it. I don't cook with spices every day and over time the ones in my cupboard become stale and the cost of replacing them isn't cheap. Plus I am convinced that the majority of spices we get in Australia are already quite old.
Having said that I do try to always have a handful of whole spices on hand, which are
coriander seeds
cumin seeds
fennel seeds
cinnamon sticks
green cardamon pods
cloves
star anise
I haven't had much luck with store bought Indian curry pastes, they often contain a bunch of e numbers and quite dense. Recently, thanks to Udeni a Sri Lankan PhD candidate I used to share an office with, I have discovered the joys of using authentic curry powders. It's easier, I think they are fresher, far cheaper, much faster and I don't think you sacrifice on taste. I do usually add additional whole spices to give it an extra kick - but this isn't essential. I have had a lot of luck with Mangal brand curry powders, many of them don't have added salt or any e-number additives. Mangal have a few different "dahl" blends (boxes that say dahl and tell you to add lentils), I just take a leap of faith and pick one, it has lead to a few different batches of dahl and I have not been disappointed yet.
I think the trick to any good curry is figuring out what else to put in besides the curry powder/meat//vegetables/lentils, for example a thai green curry is not the same without kaffir lime leaves and with regards to dahl, the importance of fresh curry leaves cannot by stressed enough. Buy a tree and grow them yourself if you have to. If you buy a big bag and don't use them all, they store in the freezer just fine (this goes for kaffir lime leaves too).
Dahl, put simply is a lentil curry, it's made in many countries, many different ways. Some are tomato based others use coconut milk. I use coconut milk. I think there is a difference between cheap and good quality coconut milk, in both its texture and its flavour, so I suggest you don't choose the cheap stuff. I use mung dahl lentils, these are usually in Asian grocery stores but if you have any trouble, red lentils are a fine substitute. You can use ghee instead of vegetable oil, it definitely achieves a richer flavour, but... it's butter and probably not as good for you. So I tend to just use oil.
The following recipe is pretty close to what my Aunt Shamim taught me, it makes heaps of dahl and keeps brilliantly in the freezer.
Shamim's Dahl
400gm Mung Dahl (about 2 cups)
3 tbl Mangal Brand Dahl Curry Powder
vegetable oil
2 onions diced
4 cloves garlic minced
2 cm knob ginger grated
10 cardamon pods
~30 curry leaves
2 sticks lemon grass (hard outer removed, sliced into 5 cm pieces)
Juice of one lemon/vinegar
small tin (80ml) coconut milk
fresh coriander to serve
dry roasted the following ingredients individually in a dry fry pan and pound in mortar and pestle
1 tbl cumin seeds
2 tsp coriander seeds
1 tsp fennel seeds
2 tbl shredded coconut
In a saucepan bring the lentils to boil in 4 cups of water, turn it down to a simmer and skim off the foam as it forms. Make sure you stir it regularly and check it isn't sticking at the bottom-add more water if it does. They cook in about 10 minutes, when cooked they swell up and go very soft and mushy.
In a deep fry pan or large saucepan fry diced onion and garlic until translucent
add cardamon pods and ginger, fry for a minute or so, then add the rest of the dried spices. Fry for 2-4 more minutes
add curry leaves and coconut fry for another minute
add coconut milk and lemon grass
give it a few minutes to let the flavours develop
add the cooked lentils, bring to simmer, add the juice of one lemon and you're done
So you've made this big effort, don't stop now! My method is to have 2-3 currys in the freezer at a time, get them out of the containers, cut off a block of each curry and heat them up in the microwave. Usually I don't eat the dahl (or any indian curry) the day I make it. Making it the day before does seem to make a big difference, in flavour and also in the effort made serving it...
try serving your curry with a combination of...
Rice (white/brown/jasmine/basmati)
Papadums cooked in the microwave or pita bread/chapatis/naan browned in a dry fry pan or Parathas (pictured below, bought raw and frozen in asian grocery, put in fry pan on medium heat while still frozen-no oil required- turn frequently until brown)
A salad with tomato, cucumber, red capsicum, mint, coriander, lemon juice and onion (red or spring onion)
chutney (I love spicy mango)
Natural yogurt mixed with 1/4 clove of minced garlic, a little salt and mint
other steamed vegetables, cabbage and dahl are a good combination
good luck!