For prediction, we are interested in the best outcome and want to include as much information as possible in the model to explain the response, but still without over fitting (don't capture the noise) as we want our model to generalize well to new data. Generally, lower values of the LASSO tuning parameter are needed for prediction. When a group of correlated variables are present, LASSO will tend to select the best predictor in the group and discard the rest. The true set of variables are usually included in the best predictive model with high probability. Other variables will be included to maximize the predictive power of the model and will likely have small parameter estimates but won't be shrunk completely to zero. The best predictive model will have the lowest mean squared error (MSE).
Variable selection is a much harder problem than prediction. For variable selection we want to understand the relationships between variables and explain the importance of each variable. This would in fact be recovering the true model. A higher value of the tuning parameter is necessary in order to shrink more parameters to zero. LASSO only does well for variable selection under some rather strong assumptions regarding the size of the parameters and the correlations between variables (see my answer here). Without these assumptions, the bias is usually very high in the models. In that case, a two stage procedure like relaxed LASSO or adaptive LASSO are better suited.
There are models with the oracle property, i.e. they are consistent for prediction and variable selection, containing the correct subset of variables only and having lowest MSE. Think of it as fitting a least squares model where the set of true predictor variables known. Adaptive LASSO has the oracle property (see my answer here), as do some shrinkage methods with concave penalty functions like MCP and SCAD (see my answer here). Hope that clarifies the issue for you.