Preheat oven to 400 degrees Fahrenheit (200 degrees Celsius) if baking meatballs.
In a large bowl, combine all meatball ingredients and mix well with your hands.
Form the mixture into 1-inch meatballs.
If baking, place the meatballs on a baking sheet lined with parchment paper and bake for 20 minutes, or until cooked through. If pan-frying, heat a skillet over medium heat and cook the meatballs until browned on all sides and cooked through.
While the meatballs are cooking, prepare the butter chicken sauce.
In a large skillet or pot, melt butter over medium heat. Add chopped onion and cook until softened, about 5 minutes.
Add minced garlic and grated ginger. Cook for 1 minute until fragrant.
Stir in garam masala, turmeric, and chili powder. Cook for 30 seconds more.
Add crushed tomatoes and heavy cream. Bring to a simmer and cook for 15 minutes, or until the sauce thickens slightly.
Add the cooked meatballs to the sauce and cook for an additional 5 minutes until heated through.
Garnish with chopped cilantro and serve hot with rice or naan bread.
Notes
You can adjust the spice level of the dish by adding more or less chili powder.
If you don't have heavy cream, you can use coconut milk or whole milk.
For a richer flavor, you can use ghee instead of butter.
Keyword butter chicken, Chicken, Curry, Dinner, easy, Indian food, meatballs