Heat 2 tbsp oil in a large pot over medium heat.
Add 1 large finely chopped onion and fry until golden, about 5 to 7 minutes.
Add 2 minced garlic cloves and 1 tbsp grated fresh ginger. Cook for 1 minute, stirring often.
Stir in 2 tsp curry powder, 1 tsp garam masala, 1 tsp ground coriander, 1 tsp turmeric, 1 tsp paprika, and 1 to 2 tsp chilli powder. Cook for 30 seconds until fragrant.
Add 500g of your choice of meat or vegetables. Stir well to coat them evenly with the spices.
Add 2 chopped large tomatoes (or 1 can chopped tomatoes) and 1 tbsp tomato paste. Mix well.
Pour in 1 cup water or stock. Season with salt to taste.
Bring the mixture to a simmer, then reduce heat to low. Cook uncovered for 30 to 45 minutes, stirring occasionally, until the meat is tender and the sauce thickens. Add extra water if needed during cooking.
Serve the curry hot over the cooked rice. Garnish with fresh coriander if you like.