Start by heating oil in a large pot and sauté the chopped onion until soft. Add the warm spices and toast them for a couple of minutes to release their aromas. Then pour in the chopped tomatoes, cover, and let the sauce gently simmer for about 20 minutes.
While the sauce simmers, combine the ground beef (or lamb) with grated onion, garlic, cilantro, and spices in a bowl. Mix just until everything comes together–don’t overwork it or the meatballs can become dense.
Shape the mixture into small balls about the size of ping‑pong balls. You can sauté them in a little oil to brown all sides or add them into the sauce raw. Gently simmer them in the sauce for about 15 minutes, uncovered but at a very low heat to keep the meat tender.