Heat oil in a medium-sized heavy bottom pot. Add chopped onion, and brown on medium-low heat until evenly brown, about 7-10 minutes.
Lower heat, and add crushed ginger and garlic. Sauté for 30 seconds to 1 minute until fragrant.
Add chopped bird’s eye chili, and sauté for another 30 seconds.
Add whole and ground spices, and fry on low heat for roughly 1 minute until fragrant. Add a splash of water to deglaze the pan if necessary.
Increase heat to high, and add ground chicken and salt. Crumble with spatula, and fry until no longer pink.
Add 1 cup water, and bring to boil. Cover pot with tight fitting lid, and simmer on low heat for roughly 10 minutes.
Remove lid, increase heat to high, and add chopped tomatoes. Fry the tomatoes, stirring frequently until the oil begins to separate.
Remove from heat, and place in serving bowl. Dust with garam masala powder, and garnish with cilantro if using.