In a large bowl, whisk together vinegar, garlic paste, ginger paste, yogurt, salt, black pepper, and red pepper.
Add the beef cubes and coat thoroughly. Cover and marinate in the refrigerator overnight (or at least 30 minutes).
Heat vegetable oil in a large pot over medium heat. Add onions and sauté until translucent and golden brown, about 10 minutes.
Add the marinated beef and cook, stirring frequently, until browned on the outside.
Stir in chopped tomatoes and cook for 5 minutes until softened.
Pour in water and bring to a gentle simmer. Cover, reduce heat to medium-low, and cook for about 40 minutes until the Beef Vindaloo is tender and rich.
Garnish with fresh cilantro before serving.
Notes
• For a thicker sauce, simmer uncovered during the last 10 minutes.