Whisk the vinegar, garlic, ginger, yogurt, salt, black pepper, and curry powder together in a mixing bowl. Mix in the beef cubes until evenly coated.
Cover the bowl with plastic wrap, and marinate in the refrigerator overnight (or at least 30 minutes).
Heat the vegetable oil in a large pot over medium heat.
Cook and stir the onions in the hot oil until they soften, turn translucent, and begin turning golden brown, about 10 minutes.
Add the beef cubes, and cook, stirring frequently until the meat is no longer pink on the outside, about 10 minutes more.
Stir in the tomatoes and cook for 5 minutes
Pour in the stock, and bring to a simmer. Cover and reduce heat to medium-low; cook until the beef is tender, about 40 minutes.
Sprinkle with cilantro to serve. Serve over cooked rice.