In a large heavy-bottomed pot or dutch oven, heat the vegetable oil over medium-high heat. Add the beef and brown on all sides, about 5-7 minutes. Transfer the beef to a plate and set aside.
Reduce the heat to medium and add the onions to the pot. Cook for 5-7 minutes, stirring occasionally, until the onions are translucent.
Add the garlic and ginger to the pot and cook for 1 minute, until fragrant.
Stir in the curry powder, cumin, coriander, cinnamon, cloves, and cayenne (if using). Cook for 2-3 minutes, until the spices are toasted and fragrant.
Pour in the beef broth and coconut milk, stirring to combine. Add the browned beef, potatoes, and carrots. Bring the mixture to a simmer.
Reduce the heat to low, cover the pot, and let the curry simmer for 60-90 minutes, or until the beef is very tender and the vegetables are cooked through.
Stir in the soy sauce and rice vinegar. Taste and adjust seasoning with salt and pepper as needed.
Serve the Chinese Beef Curry over steamed rice, garnished with chopped cilantro.