Patrick,
Even in situations where the user can select from multiple criteria (user enters some parameters, and leaves others blank), I still generally recommend stored procs.
You can define all the possible parameters in the stored proc, given them NULL default values, and use T-SQL functions like ISNULL or COALESCE in your stored proc. Additionally, if you're using SQL 2005 as your database, you can take advantage of the new XML capabilities in SQL 05 to process a variable list of key selections.