To a large pot over medium-high heat, add the oil. When it’s hot and shimmering, add the onion and 2 of the chiles and cook, stirring occasionally with a wooden spoon, until the onion begins to brown, about 5 minutes. Add the tomatoes, using the spoon to break them up slightly. Cover and cook until the tomatoes have almost melted, about 5 minutes.
Turn the heat to medium. Stir in the coriander, cumin, garlic paste, ginger paste, chile powder, salt, turmeric, peppercorns, cardamom, cloves, bay leaves, and cinnamon sticks. Cook, stirring frequently, until the mixture darkens, about 5 minutes. Cover and cook until the onion and tomatoes have disintegrated and the oil begins to separate and rise to the top, about 3 minutes.
Add the chicken and potatoes, cover, and cook, tossing after 5 minutes, until the chicken releases moisture and is coated in the spice mixture, about 10 minutes. Add 1¼ cups of hot water, toss again, and bring to a boil. Turn the heat to low, cover, and continue cooking until the potatoes are tender and the meat is cooked through and separates easily from the bone, 18–20 minutes more.
Turn off the heat and stir in the garam masala. Sprinkle with the cilantro and add the remaining chiles. Cover and set aside for 5 minutes, then serve.
