Functions are generally restricted to returning a single value, while procedures can have multiple OUT parameters. There are situations where functions are more useful in queries (i.e. you want to create your own function that can be used in a query like the standard functions UPPER, etc.). In some client-side languages, it's slightly easier to call stored procedures rather than stored functions.
But I am not sure what you are looking for, could you please be specific...