Heat 2 tablespoons of vegetable oil in a large pan over medium-high heat. Add the lamb pieces and sear until browned on all sides. Remove the lamb and set aside.
In the same pan, add 1 tablespoon of vegetable oil and sauté the sliced onions until golden brown.
Add the grated ginger and minced garlic to the onions, and sauté for another 2 minutes until fragrant.
Stir in the coriander, cumin, turmeric, and chilli powder. Cook for 1 minute to toast the spices.
Add the seared lamb back into the pan, along with the tinned tomatoes. Season with salt and black pepper. Stir well and bring to a simmer.
Reduce the heat to low, cover the pan, and let the curry simmer gently for 1.5 to 2 hours, or until the lamb is tender.
Stir in the yoghurt and garam masala, and let it cook for an additional 5 minutes. Adjust seasoning if needed.
Cook the basmati rice according to package instructions and set aside.
Serve the lamb curry over the basmati rice, garnished with fresh coriander leaves.