Agree with Tambo - it should be based on some criteria pulled from the database instead of some user action, because once the secret is out, everyone will be using it. (Similar to that web page that identifies the keystrokes needed to get out of the IVR and to an agent for MANY companies)
In our case, we use a different criteria:
1 - Toll-free number called (DNIS) - because this can identify a specific, higher-touch relationship
2 - account number - if a caller happens to come in on a different line and identifies him/herself, we can change the priority of the call
3 - "At Risk" callers - again, based on the account number.
Most of our callers start at the same priority - 1 - and this increases by 1 every minute.
Some of our "higher touch" callers may start at a higher priority - maybe 5 - and increases by 1 every minute. This may move them to the front of the line, but they may still be behind someone.
In some cases, we will change the priority step value - so instead of increasing by 1 every minute, the step value may be 2 or 3, so they get moved to the front of the line quicker.
There is a good section in one of the URS references about Priority routing. It is worth reading.
Just be careful that you do not implement Last In, First Out routing (whoever presses * winds up at the front of the line), because the person who was first in will constantly be pushed back, and their call may never get answered.