Heat the oil in a pot with a lid that is large enough to hold all the ingredients over medium heat. When the oil starts to shimmer add the onions.
Cook the onions until they are browned on the edges. You aren't going for the deep brown onions this time. This should take 10 to 15 minutes.
Add the garlic ginger paste. Cook about a minute more.
Push the onions to one side. Give them a squeeze with a wooden spoon or spatula to get the oil into the pan. Add the whole spices and cook until you see little bubbles forming around the spices.
Pay attention to this step. Turn the heat to medium low. Add the powdered spice mix. Stir to combine thoroughly with the oil. You are going for a spicy oil slurry. You should have enough oil but if it looks dry add another tablespoon.
Cook the powdered spices for about a minute, stirring regularly. You need to be careful here. If you have enough oil the spices shouldn't burn. Burnt spices is the kiss of death. You have to start over if you burn them. If you have any doubts just push the pot off the burner.
Now stir the spice slurry into the onions. Mix it all up. Cook for about a minute more.
Add the pureed tomatoes. Stir to combine. Reduce heat to low, cover and simmer for about 10 minutes.
Add the chicken. Give it a stir and bring to a lively simmer. Cover loosely, reduce heat to get a gentle simmer and cook, stirring occasionally until the chicken is cooked through. Chicken thighs are perfectly cooked at 170F. Use your instant read thermometer. You have an instant read thermometer right? If you don't, you are just guessing.
The chicken should be done in 20-25 minutes. Keep an eye on it. Give it a gentle stir every 5 minutes or so. You want this to be a pretty dry curry. The chicken will throw liquid as it cooks. If it looks really saucy take the lid off completely to finish cooking.
Add the tamarind or lemon and a good handful of chopped cilantro. Stir to combine. Cook for a couple more minutes. If it's too thick add a splash of water. Once you have reached your desired consistency taste and adjust salt.
Serve with roti or rice or both.