Heat oil in a heavy-bottom pot over medium heat. Add chopped onion, and brown on medium to medium-low heat until evenly brown, about 7 to 10 minutes.
Lower heat, and add crushed ginger and garlic. Stir on medium-low heat for 30 seconds to 1 minute until fragrant.
Add chopped bird’s eye chili, and stir until well-mixed.
Add whole and ground spices, and stir for roughly 1 minute. 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, about 3 to 5 minutes.
Add 1 cup of water, cover, and bring to boil. Lower to a simmer, and let the keema cook for roughly 10 minutes.
Remove lid, increase heat to high, and add chopped tomatoes. Fry the tomatoes, stirring frequently until they begin to break down, and oil begins to separate. Let the keema simmer until excess water dries out, and you get the desired consistency.
Remove from heat, and place in serving bowl. Dust with garam masala powder, and garnish with cilantro.