1. Melt butter in a large skillet over medium-high heat. Add onions and cook, stirring, until softened and beginning to brown, 5 to 7 minutes. Scrape into slow cooker. Place chicken pieces on top.
2. Combine ginger, garlic, almonds, yogurt, garam masala and salt in a food processor and process until smooth, scraping down sides of bowl with a flexible spatula as necessary. Add tomatoes and pulse once to combine. Pour mixture over chicken. Cover and cook on low until chicken is tender, 4 to 5 hours. Stir in heavy cream, cover and cook until warmed through, about 5 minutes. Sprinkle with cilantro just before serving, if desired.