In a blender or immersion blender, add ginger, garlic, and 4 TB water. Blend until mixture is the consistency of paste. Transfer into a small dish and set aside.
In a large heavy pot or Dutch oven, heat oil over medium heat until hot. Working in batches, use metal tongs to brown meat cubes until all sides are nicely browned. Use tongs to place browned meat in separate dish and set aside.
In the same pot with the same oil, add cardamom pods, bay leaves, cloves, peppercorns, and cinnamon. Stir 30 seconds. Add onions, and stir 5 minutes. Add ginger paste mixture and stir 30 seconds. Add coriander, cumin, paprika, garam masala, cayenne, and 1 tsp salt. Stir 30 seconds.
Add back the browned meat cubes with accumulated juices. Stir to coat well. Add yogurt and stir until well incorporated, 2 minutes.
Add 2 cups water to the pot. Bring to a boil, stirring occasionally. Cover with tight-fitting lid and turn heat to a medium-low boil. Let cook for 3 hours or until meat is fork-tender (Stir well once, halfway through.)
If curry needs to be thickened, uncover and boil for 5 minutes to reduce liquid to desired consistency. Add salt and pepper to taste, if needed. Remove bay leaves, cinnamon sticks, and pods/cloves if desired.
Serve warm, with naan bread or basmati rice.
Rogan Josh has often traditionally been made with goat; lamb is common now, as well as beef. Feel free to experiment with your choice of protein.This dish is even better when made a day ahead of time. Reheat when ready to serve.If you enjoyed this recipe, please come back and give it a rating ♡