Heat the oil in a large, heavy-based pan over a medium-high heat. Add the onions and cook, stirring occasionally, for 6 minutes, until soft and translucent.
Add the garlic, ginger, red peppers and fenugreek leaves and cook, stirring, for a further 2 minutes, until the onions have started to turn golden brown.
While the onions are cooking, put all the ingredients for the meatballs in a large bowl and mix with your hands until well combined. Set aside.
Add the garam masala, chilli powder and ground turmeric to the pan with the onions and stir to combine, then tip in the salt, sugar, chopped tomatoes, and 400ml of boiling water and stir again until well combined.
Bring the mixture to a boil, then reduce the heat to a lively simmer and leave to bubble away while you make the meatballs.
Take a heaped teaspoon of the meatball mixture and roll in your hands to form a small meatball. Set aside and repeat the process until all of the meat is used up.
Drop the meatball into the simmering sauce and stir to coat the meat in the sauce.
Leave to cook for 10 minutes, then stir through the spinach and cook for 5 minutes more.
Divide the curry between serving plates or bowls and serve garnished with fresh coriander/cilantro and with cooked rice alongside.
