Pour milk into a large saucepan or use an Instant Pot as I did. Set it on medium heat. Alternatively, use an Instant Pot to boil the milk. Press "Yogurt" and then press "Adjust" to the "More" mode and you should see the word "boil" on the display. The milk will start to boil. When it's done, Instant Pot will beep and display "yogt".
Stir the milk occasionally to prevent scalding. Once the milk comes to a boil, reduce the heat to low. If using the Instant Pot, switch to the Saute mode and set it to "Less". Add the acidic agent [please read note]
Once the milk starts to separate turn off the heat. Do not stir more than twice or thrice, we want the curd chunks to retain its size and not get scrambled.
Let the mixture cool down for about 10 minutes. At this point, the milk should have completely separated into clear yellow liquid and curd.
Place a colander over a large bowl. Line it with two layers of cheesecloth. Carefully pour the curdled milk into the cheesecloth.
Gather the ends of the cheesecloth and gently squeeze to get rid of excess whey. Note - Do not discard the whey - use it in your chapati dough, sambar or kadhi.
Place the cheesecloth with paneer in a bowl of cold water. Dunk the cheesecloth with paneer in the water couple of times to give a quick rinse. This will allow it to cool down and also, helps get rid of any sourness.
Gently squeeze again to get rid of excess water/ whey.
Place the curd along with the cheesecloth on a plate or a flat colander if you have one. Shape the cheese into a disc (or a square).
Place another plate on top of it and weigh it down with a heavy object. I used my Le Creuset. You could use a heavy mortar and pestle too.
Leave the cheese undisturbed for about an hour after which take the paneer out of the cheesecloth. I prefer to firm it up a bit more so I leave it in the refrigerator in an air-tight container for an hour.
Cut into cubes to use. Refrigerate the leftovers for 3-4 days or in the freezer for up to 2-3 months.
Notes
A tip while using an acidic agent - If you are using yogurt you can add it all of it at once. If using vinegar, lime juice, or citric acid, add 1/2 the quantity first and give it a stir. If the milk does not start to curdle, then add the remaining portion. This is because lime juice/vinegar makes the paneer sour and the lesser you use the better it is.
For firmer paneer - The longer you allow the paneer to drain through the cheesecloth the firmer the cheese. This allows the moisture to drain.
To make malai paneer, replace 2 cups of milk with an equivalent amount of heavy cream.
Storage instructions - Slice into cubes and store in an airtight container in the refrigerator for up to a week. If you want to freeze your paneer, wrap the cheese tightly in plastic wrap and store in a freezer bag or freezer-safe container. Thaw it overnight in the refrigerator before use.
Using Instant Pot to make Paneer
I love using Instant Pot to boil the milk because you just have to set it to Yogurt- Boil mode and walk away. The Instant Pot will beep when it is done and you can then add the acidic agent.
An alternative way to use the Instant Pot to make paneer includes pressure cooking the milk with the acidic agent for 2 minutes. Allow the pressure to release naturally. This is a completely hands-off process that takes the same amount of time as the Yogurt-Boil method.
If your Instant Pot does not have a Yogurt function, you can also the saute mode and set it to "Medium". The milk should take about 10-15 minutes to come to a boil. Make sure to stir occasionally to prevent scalding.