I have a drop-down list that gets populated based on a stored-procedure - that parts works fine.
You are doing it right by returning the -- All -- option as part of the dataset that the query is based on.
You are getting the message because, well, you haven't selected a value. What you need to do is assign the default value of -- All -- to this parameter. Open the parameter settings and click on the Default Values tab and enter the default value, which in this case is Null for -- All --.