Melt half the butter in a Dutch oven or heavy pot on medium heat. Add onion and garlic and cook, stirring occasionally, for 5 minutes.
Cut chicken into bite-sized chunks. Sprinkle with salt and pepper. Increase heat to medium high. Brown chicken. Add curry paste, ginger and cinnamon and cook, stirring for 30 seconds. Add tomatoes, including juices, and remaining butter to pan and bring to boil.
Reduce heat and simmer, covered, for 20 minutes or until chicken is cooked through. Stir in sour cream and coriander.
Heat until very hot without boiling. Serve with rice or naan bread. Garnish with lime wedges.