In a heavy-bottomed pot, pour the whole milk and place it over medium heat. Carefully heat the milk until it reaches about 200°F (93°C), stirring frequently to prevent it from scorching on the bottom.
Once the milk reaches the desired temperature, remove it from heat and let it cool down to around 110°F (43°C). You can speed up this process by placing the pot in a cold water bath.
Whisk in the plain yogurt until well combined. If using, add the heavy cream and a pinch of salt for extra flavor.
Pour the mixture into an airtight container or a clean bowl, cover it with a lid or plastic wrap, and wrap it in a towel to keep the warmth in. Place it in a warm spot in your kitchen for about 8-12 hours or overnight.
After the fermentation period, check the yogurt for thickness and tartness. If you are satisfied, it's time to strain.
Place a cheesecloth or a fine mesh strainer over a large bowl and pour the yogurt into it.
Allow the yogurt to drain for about 2-4 hours, depending on how thick you like your Greek yogurt. For a creamier texture, strain for less time.
Transfer the strained yogurt to an airtight container for storage. You can keep the whey for smoothies or baking.
Store the Greek yogurt in the refrigerator for up to 2 weeks. Serve it plain or with your favorite toppings.