Drizzle a generous amount of oil into a large, heavy skillet set over medium-high heat and sauté the onions with the cinnamon stick for 4-5 minutes, until turning golden. Add the garlic, ginger and jalapeno and cook for another few minutes. Add the tomatoes, cumin, coriander, garam masala, turmeric, cayenne, salt and pepper and cook, stirring often, for 5 more minutes, until the tomatoes break down and everything smells fragrant.
Add the sour cream and water and stir until well blended, scraping up any browned bits from the bottom of the pan. When it comes to a simmer, nestle the halibut chunks into the mixture and cook for a few minutes, turning as the fish cooks through, firming up and separating a little into flakes. Cook until the mixture thickens a bit, then remove the cinnamon stick and add the cilantro.
Serve immediately, or let cool and gently reheat later.
Serving Size Serves 4-6.