Place the lentils in a fine mesh sieve and rinse under cold water, agitating with your hand until the water runs clear.
Heat the oil in a large saucepan over low-medium heat. Add the onion and garlic, and cook until the onion is soft and translucent (3-5 minutes).
Add the spices (turmeric, cumin, curry powder), and tomato puree to the pan and cook for a couple of minutes, stirring frequently. If it begins to stick, add a splash of water to prevent it burning.
Stir in the lentils, followed by the vegetable stock, sweet potato, and creamed coconut. Bring to a gentle boil, then cover with a lid (leave it open a crack to allow the steam to escape) and cook for 18 minutes. Stir towards the end, adding a little extra water if needed.
When the lentils and sweet potato are tender, remove the pan from the heat and leave to rest for a couple of minutes. Season with salt, to taste.
While the dhal is cooking, prepare your chapattis and any sides.