If using fresh tomatoes, cut them in half cross-ways (ie not top to bottom) and grate them into a shallow dish/bowl, holding the base/top and discarding the skin. If using canned, crush them if not already crushed and remove any tough stem pieces or skins.
Finely chop the cilantro and parsley and then measure out (I usually chop for the meatballs at the same time then set those aside). Peel and finely dice the onion and garlic.
Warm the olive oil over medium heat in a tagine or wide, relatively deep skillet/frying pan or braiser (wide enough to have the meatballs in a single layer, ideally, depending on quantity you are making). Add the onion and cook a few minutes until it is going translucent, reducing the heat and/or adding a little more oil if needed to avoid burning. Then add the garlic and cook a minute more.
Add the rest of the sauce ingredients - tomatoes, cilantro, parsley, paprika, cumin, salt, pepper and cinnamon - and mix then bring to a simmer. Cover, reduce heat and cook for around 15 minutes covered, and another 15 uncovered (or part covered) at a simmer so that the flavors mingle, the tomatoes are completely soft and the sauce starts to thicken slightly.