Preheat oven to 350°F (175°C). Grease a 9" x 13" x 2" baking pan, or line it with parchment paper and grease the paper and any exposed parts of the inside of the pan.
Whisk together the flour, baking powder, and salt. Set aside.
Using an electric mixer on medium speed, beat the butter and sugar until light and fluffy. Add the eggs, one at a time, mixing well after each addition. Mix in the lemon juice and lemon zest. Gradually add the flour mixture, mixing just until combined. Stir in the sour cream.
Transfer the batter to the prepared pan. Bake for 25-30 minutes, or until a pick inserted into the center comes out clean.
Set the pan on a wire rack, and allow the cake to cool for about 3 to 5 minutes.
To make the topping:
Using the round handle of a wooden spoon*, poke holes about 1/2 inch apart over entire surface of the warm cake, making sure not to poke all the way to the bottom of the cake.
Whisk together the condensed milk and 6 tablespoons of lemon juice until smooth. Immediately pour the mixture over the warm cake, spreading it to cover the surface and seep into the holes. Note that not all of the mixture will be absorbed into the cake.
Allow the cake to cool completely. Then refrigerate the cake for at least 1-2 hours to allow the topping to set and soak into cake.
To make the frosting:
Using an electric mixer on medium speed, beat the cream cheese, confectioners' sugar, and 1 tablespoon lemon juice until smooth. Use the range of sugar in the recipe to adjust the sweetness to your taste.
Spread the frosting evenly over the topping of the cool cake. Refrigerate at least an hour before serving.
Notes
*A knife honing steel or other similarly sized tool will also work. Just make sure you don't use something small like a toothpick or fork because the topping is fairly thick. As mentioned above, not all of the mixture will be absorbed.
Store in an airtight container in the refrigerator up to 3 days. Let come to room temperature for serving.