The boat overturned on Sunday evening between the towns of Sesto Calende and Arona, Italian media say.
Five people were rescued and taken to hospital.
Unconfirmed reports in Italian media say the victims are Italian, Israeli and Russian.
One of the them, a Russian woman, is said to have been the partner of the boat's skipper.
Attilio Fontana, president of the Lombardy region, said the "very serious incident" was due to bad weather.
The boat was 16m (52ft) long and had been hired by tourists, he said on Facebook.
According to Italian news outlets, the boat had been carrying about 25 people who were celebrating a birthday when a storm developed over the lake, later turning into a "small hurricane". The boat capsized and sank soon afterwards.
Everyone onboard went into the water, but many of the passengers swam ashore or were rescued by other boats.
Rescue divers and a helicopter scrambled to help with the search at the lake's southern end, and several ambulances and an air ambulance attended the scene.
A video shared by firefighters showed chairs and other debris floating in choppy waters.
Lake Maggiore - on the south side of the Alps - is shared by Italy and Switzerland and is a popular destination for tourists.
The area has seen poor weather over the last day, with Italy's meteorological service issuing thunderstorm warnings.