Microwave milk in four-quart ceramic bowl for approximately 25 minutes or until boiling. Remove from microwave, wait 30 seconds (to prevent overflowing), then gently add lemon juice. Stir mixture slowly, allowing milk to curdle (yellowish water will separate from mixture and lumps of paneer will begin to form). Allow mixture to rest for 10 minutes.
Line colander with six layers of cheesecloth and place in sink. With slotted spoon, remove paneer from bowl and place on cheesecloth. Rinse under cold water to remove lemon scent. Bring corners of cheesecloth together and squeeze excess water from paneer.
Flatten paneer on even surface and sandwich between kitchen towels. Press under heavy weight for a few hours to make firm.
Refrigerate overnight. Cut paneer into cubes, then deep fry in canola oil at 325° F until light brown. Remove from oil with slotted spoon and drain on paper towel.
Preheat four- to six-quart heavy-bottomed pan on medium heat. Add oil; once hot, add bay leaves, cinnamon stick, cardamom, cumin seeds, and cloves. After 30 seconds, add onion and stir-fry until onion is light brown. Add garlic. Continue stirring and browning onions, then add turmeric, cayenne pepper, coriander powder, paprika, and cumin powder. Stir for 20 seconds. Add 1/4 cup hot water to prevent burning or sticking.
Incorporate yogurt and sour cream
slowly. Allow oil to separate. Add tomato purée, ginger, black pepper, and salt. Continue stirring until oil separates again. Add one cup hot water and continue cooking for 10 to 15 minutes, stirring occasionally to keep from sticking. Once again, wait for oil to separate.
Rinse paneer cubes to remove excessive oil. Add paneer and peas to pan and bring to a boil, stirring gently to avoid breaking paneer. Add three cups hot water to pan and boil for five minutes. Simmer on low heat until sauce thickens, approximately 45 to 50 minutes.
Garnish with cilantro and Garam Masala (a spice blend available at gourmet groceries and specialty food stores).