8 answers
Setting up a junction object is actually the easier question to answer, but whether this would be best practice is yet to be determined.
We use a picklist field on the lead to identify the product group of interest, and only get more granular once we have created an opportunity. In my opinion, if you are to the point with a customer that you are able to identify the product line item itself, then it seems that it should be converted to an opportunity, but I am aware that business logic doesn't always fit into all business processes.