In a small blender, combine chili powder, paprika, smoked paprika, coriander, cumin, cinnamon, peppercorns, fenugreek, dry mustard, cayenne, turmeric, cloves, brown sugar, ginger, garlic, vinegar and water and blend until very smooth (see Note 5)
Taste the curry paste; if it's too spicy, add a little more brown sugar
Season beef cubes with salt and place in a medium bowl or container
Pour the marinade over the beef cubes and mix to ensure all pieces are well coated
Cover and marinate for at least 2 hours or ideally overnight
Heat a large pot or dutch oven over medium heat and add the oil
Add the onion and cook until softened, about 3-4 minutes, then add the bell peppers and stir
Increase the heat to medium-high and add the marinated beef to the pot
Cook for 1-2 minutes to sear, stirring continuously
Reduce heat to medium-low; cover and cook for 3-4 minutes
Uncover and add 1 cup beef broth, stirring to combine with curry paste
Allow to cook, partially covered, for 1 ½ to 2 hours or until beef is very tender, stirring every 15 minutes or so and adding broth as soon as the liquid has mostly reduced (around every 30-40 minutes; the sauce will keep reducing as it cooks)
Taste and season with additional salt if desired
Add cream if desired to create a smoother, creamier gravy (vindaloo is traditionally semi-dry and thick, so you can skip the cream and serve it that way)
Serve with basmati rice and naan and sprinkled with fresh cilantro