You can use Javascript, C# (through plug-ins) or Workflow.
You can set a workflow when a lead is assigned automatically create a Opportunity and other workflow when a specific field change and the value is x remove the reference of Lead.
This tool can help you.
If you go to a manual workflow you need create a contact with information of lead, create opportunity record with the previous contact and change the state of lead to qualified.