Making the column headings perform the sort is probably the best option, people expect this behaviour based on experiences in other programs.
This is the way we do it, the button passes a parameter to a script, depending on which column was clicked, the script then contains multiple sort orders
with multiple fields, so for instance First name , Surname, Address1
Clicking on Surname would sort by Surname then First name then Address 1 etc
Clicking on Firstname woudl sort by First name, Surname then Address 1 etc
Rather than just sorting based on the single selected field.
There is a plugin which also allowed you to alter the sort window : http://dracoventions.com/products/2empowerFM/suite/ui.php