Halve the tomatoes crossways, then squeeze out the seeds. Coarsely grate the tomatoes into a bowl down to the skin, discarding the skin. Set aside.
Heat the olive oil in a heavy-based saucepan over low heat and add the onion. Cook for 5 minutes. Stir in garlic, ginger, cinnamon stick and pepper and cook for about 1 minute. Add saffron, if using, the tomato paste and the tomatoes and season with 1/2 tsp salt.
Simmer, uncovered, over medium heat for about 45 minutes, or until most of the liquid evaporates, stirring often when the sauce starts to thicken to prevent it catching on the base of the pan. When the oil begins to separate, stir in honey and ground cinnamon and cook over low heat for 2 minutes. Adjust the seasoning with salt if necessary.
Store in a clean, sealed jar in the fridge for up to 1 week.