The boat was carrying 55 people along the Musi river when it hit a large wave and sank amid bad weather Wednesday, South Sumatra water police chief Robinson Siregar said.
He said the police were still searching for the captain, who reportedly survived but went missing.
"His assistant has been detained for questioning to find out, for example, whether or not the boat was seaworthy or there was negligence by the crew," Siregar said.
Bodies were found along the riverbank, with one discovered by locals an hour's walk from the accident site.
It was the latest deadly maritime accident in the vast Indonesian archipelago, which relies heavily on boats to ferry people around its 17,000 islands, but has a patchy safety record.
On New Year's Day, at least nine people died after a passenger boat capsized when traveling from the city of Tarakan to Tanjung Selor on Borneo island.
Last July, eight people drowned in a boat accident on the same route.
On New Year's Day in 2016, at least 23 people died when a tourist boat from Jakarta burst into flames. It was carrying about 250 local holidaymakers to celebrate the New Year on Tidung island near Jakarta.