In a large skillet, heat the oil over medium heat. Add the onion, garlic, and ginger. Cook, stirring, until tender, about 4 minutes.
Add the curry powder, garam masala, turmeric, cumin, and cayenne pepper and toss, toasting the spices until fragrant, 1 to 2 minutes.
Stir in the tomato paste until well combined with the spices. While whisking, slowly stir in the coconut milk until it is well combined and there are no lumps. Add the broth and salt and bring to a simmer. Simmer, uncovered and stirring occasionally, until the sauce has reduced slightly. Taste and add more salt and/or cayenne, if desired.
When the meatballs are cooked through, transfer them to the sauce and carefully toss to coat fully. Reduce to medium-low heat, cover, and let the flavors meld for about 5 minutes.
To finish, stir in the lemon juice and top with fresh cilantro. Serve over rice or cauliflower rice, and enjoy!