The England international has signed a five-year contract with his new club.
Maddison spent five years with Leicester after joining from Norwich City for £20m in 2018 and made 203 appearances for the Foxes, scoring 55 goals and laying on 41 assists.
Despite scoring 10 goals and supplying nine assists in 30 Premier League games last season, Maddison could not prevent Leicester from dropping down to the Championship as they finished in 18th position.
The 26-year-old won the FA Cup and Community Shield during his time at the King Power Stadium but now becomes Tottenham's third signing this summer after Dejan Kulusevski and goalkeeper Guglielmo Vicario.
'I feel a hunger about the place and I'm ready to get going!' Maddison said.
A follow-up Tweet showed him off holding up his new kit with the caption: 'We are delighted to announce the signing of James Maddison! Let's go, Madders.'
Tottenham finished eighth in the Premier League last season and will go into the new campaign under Ange Postecoglou, who joined from Celtic as manager earlier this month.
Maddison has been capped three times by the England national team.