Heat oil in a large pot over medium heat. Add the chopped onions and sauté until golden brown.
Add the minced garlic and grated ginger, and cook for another minute until fragrant.
Add the chopped tomatoes and cook until they soften and release their juices.
Add the cumin powder, coriander powder, turmeric powder, chili powder, and salt. Stir well to combine.
Add the beef pieces to the pot and mix well with the spices and onion-tomato mixture.
Add enough water to cover the beef and bring to a simmer. Cover the pot and cook on low heat until the beef is tender (about 1-1.5 hours).
Once the beef is cooked, sprinkle garam masala over the curry and give it a final stir.
Garnish with fresh coriander leaves before serving.
Serve with rice or flatbread.
Enjoy!