Heat a soup pot over medium heat. Add the butter and onion and cook until soft. Stir in the spices and season with salt and pepper. Cook for another minute or so.
Add the tomatoes and turn the heat up. Cook for about 15 minutes, until the tomatoes have started to break down.
While the soup is cooking, heat a non-stick skillet (I use cast iron) and add a tiny bit of butter or olive oil. Fry the cheese cubes until they are golden on all sides. Set aside.
Puree the soup in a blender or use an immersion blender. Transfer back to pot, and add the coconut milk and lime juice.
To serve, put some rice in your bowl and pour the soup over top. Top with a few cubes of cheese, cilantro, and almonds, and serve with additional lime wedges.