In a large pot, add the milk over medium heat. Right when it comes to a boil, remove from heat and add the vinegar. Set aside to curdle for 10 minutes.
Strain the curdled milk through the piece of muslin, squeezing out as much liquid as possible. Place the cloth filled cheese in a rectangular container and cover with a weight. Allow to rest for 30 minutes.
Remove the paneer from the cloth, wrap in plastic, and refrigerate for another 30 minutes before using or up to a week in the refrigerator in the retained liquid or cold water.
To make the paneer korma:
In a large pan, drizzle about 4 tablespoons oil over medium heat. Sprinkle with a pinch of turmeric. Slice the paneer into even pieces, about 1-1 1/2 inch. Once the oil is very hot but not smoking, add the paneer pieces (in batches if needed) and cook until browned on each side. Remove and drain on a towel lined plate.
In a large saucepan or pot, drizzle 1 tablespoon oil over medium heat. Add the onions, garlic, and ginger. Cook, stirring constantly, until softened and fragrant, about 10 minutes. Stir in the tomato paste, coriander, 1/2 teaspoon turmeric, water, and salt to taste. Simmer to reduce the liquid.
In a food processor or blender, pulse together the tomatoes and almonds until smooth. Add to the pot and stir to combine. Simmer for 10 minutes before stirring in the half-and-half and butter. Continue to simmer for 10 minutes.
Stir in the paneer pieces to coat and garnish with cilantro. Serves immediately with Basmati rice.