In a large skillet set over medium-high heat, cook the chicken breasts in a drizzle of oil until browned on both sides. Set aside, or transfer to a slow cooker.
Add a little more oil to the skillet and cook the onion until starting to brown. Add the ginger and garlic and cook for another minute, then add the chili powder, turmeric and cinnamon and cook for another minute. Slice the chicken on a slight diagonal; don't worry if it's not cooked through.
Add the tomatoes and tomato paste and bring to a simmer; pour over the chicken in the slow cooker and set on low for 5-6 hours or high for 2, or return the chicken to the skillet, cover and simmer for 20-30 minutes, or until the sauce is thickened and the chicken is cooked through.
Turn the heat down to low and stir in the garam masala, yogurt and cream, if you're using it. Season with salt and pepper, if it needs it.
Serve immediately, with rice.