Heat the vegetable oil in a large pot or Dutch oven over medium-high heat. Brown the beef cubes in batches, making sure not to overcrowd the pot. Remove browned beef and set aside.
Add the sliced onions to the pot and cook until softened and lightly browned, about 8-10 minutes.
Stir in the minced garlic and grated ginger and cook for 1 minute until fragrant.
Add all the spices for the spice blend to the pot and stir for 30 seconds until aromatic.
Return the browned beef to the pot. Add the diced tomatoes and beef broth. Stir to combine.
Bring the mixture to a simmer, then reduce the heat to low, cover, and cook for at least 1.5 to 2 hours, or until the beef is very tender.
In a small bowl, whisk the plain yogurt until smooth. Stir the yogurt into the curry during the last 10 minutes of cooking. Do not boil after adding yogurt.
Season with additional salt and pepper to taste. Garnish with fresh cilantro before serving.