Cut spinach into shreds and cook in 3 tablespoons water until tender; remove from heat. Saute onion, cinnamon, cardamom, and ginger in 1-2 tablespoons ghee or oil until onion is translucent. Then add garlic and chopped tomatoes, and reduce heat. Cook this briefly and slowly blend in yogurt a little at a time to prevent curdling. Add coriander, garam masala, paprika, and salt, mixing well. Add cooked spinach with liquid, cover and simmer on low heat for approximately 20-30 minutes. Remove from heat. Take half of spinach mixture and puree in food processor or blender, and return to mixture and stir. Slowly stir in heavy cream, and heat through on low heat. Add paneer cubes. Serve.