The answer you're looking for is almost totally dependent on the size and structure of the table from which you are extracting the LOV.
It's not always feasible, but avoiding tables altogether can be helpful. I have several reports where I generate a picklist of dates, either the last ten years, or the last 36 months, using custom SQL and database functions to calculate the list.
If you have to extract the values from a table, however, using a SELECT DISTINCT against a column that has been indexed will give you the quickest result, and you may do better with using custom SQL rather than going through a framework.
------------------------------
Michael Walter
Business Analyst
TX HHSC
Austin
------------------------------