If your field type is Multi-Select then you can just use the apex:inputField tag and you get the Multi-Select functionality for free. I would look at using that first.
For example, in a page that uses a standardController you would have something like:
<apex:inputField value="{!My_Object__c.My_Multi_Select_Field__c}"/>
However, if that is not enough then I'd try using/adapting the component referenced by Mikey. There's also an example in the Visualforce Developer's guide in the section on Dynamic Visualforce Components. While you might not be using Dynamic Visualforce Components, you could still use the general pattern of the multiselect in the example.