si hay un número finito de condiciones, si, de la siguiente forma:
Código:
select *
from clientes
where (poblacion like :NombrePoblado or :NombrePoblado is null)
and (fechaalta > :Fecha or :Fecha is null)
and (saldo > :SaldoMinimo or :SaldoMinimo is null)
etc, etc, etc.
Si los parámetros pueden llamarse igual, depende del motor que utilices (en el bde no, porque asigna el valor solamente al primero que encuentra), pero podes llamarlos diferente y asignar el mismo valor.
Hasta luego.