Marinate the chicken: In a bowl, combine the chicken, garlic, ginger, green chilies, dried chilies, turmeric, cumin, coriander, cinnamon, cloves, black pepper, vinegar, and salt. Mix well and let it marinate for at least 30 minutes (or longer for a more intense flavor).
Sauté the onions: Heat the oil in a large pot or Dutch oven over medium heat. Add the chopped onions and sauté until softened and golden brown.
Add the marinated chicken: Add the marinated chicken to the pot and cook until browned on all sides.
Simmer the curry: Pour in the water or chicken broth. Bring to a simmer, then reduce the heat to low, cover, and cook for about 45-60 minutes, or until the chicken is cooked through and tender. Stir occasionally.
Adjust seasoning: Taste and adjust the seasoning with salt if needed. If the curry is too thick, add a little more water.
Garnish and serve: Garnish with fresh cilantro (optional) and serve hot with rice or naan bread.