Rinse the lentils thoroughly until the water runs fairly clear.
Put the onion in a large saucepan with a splash of water. Cook for 5–7 minutes, adding more water if it starts sticking.
Add garlic, ginger and all the spices except the garam masala. Cook for 30–60 seconds.
Add the lentils, tomatoes and stock. Bring to the boil, then reduce to a gentle simmer. Cook uncovered for 20–25 minutes, stirring occasionally. Add a little water if it becomes too thick.
Stir through the garam masala and lemon juice. Season to taste. Add coriander and a little extra chilli if you like it hot.