He also captained India to the top of the ICC Test rankings.
"It means a lot to win the Sir Garfield Sobers Trophy for becoming the ICC Cricketer of the Year 2017 and also the ICC ODI Player of the Year," Kohli was quoted as saying in an ICC statement.
"I won that back in 2012 also but it's the first time winning the Garfield Sobers Trophy, and it's a huge honour for me. It's probably the biggest of all in world cricket and two Indians getting it back-to-back makes it more special," he added.
This is the second time in succession that an Indian won the overall cricketer of the year award. Off-spinner R Ashwin had claimed the honour last year.
It was Kohli's second gong at the 2017 ICC Awards, with the 29-year-old also being named the ODI Player of the Year.
Kohli was also named captain of the ICC Test and ODI teams of the year.
Australian captain Steve Smith claimed the Test Player of the Year honour after scoring 1875 runs in 16 matches at an average of 78.12, with eight hundreds and five 50s.
This is the first instance since 2013 that the ODI Cricketer of the Year award has been won by a non-South African, with Quinton de Kock receiving the accolade for 2016 and AB de Villiers winning it in 2014 and 2015.
In the nominations for ODIs, Kohli was placed nominated alongside Pakistan paceman Hasan Ali, Afghanistan leg-spinner Rashid Khan and his own teammate Rohit Sharma.
Smith, meanwhile, averages 63.75 from 61 Tests, the second-best average of all time for those who have played more than 20 Tests.
In the ICC rankings he has climbed to 947 points, just 14 shy of Don Bradman' high watermark of 961.
Smith beat off competition for the from last year's winner Ashwin, who took 111 wickets at 25.87, Cheteshwar Pujara, who scored 1,914 runs, Kohli, and Ben Stokes, who hit 1,000 runs at 40.00 and took 35 wickets at 27.68.
Among other awards, Yuzvendra Chahal's incredible haul of 6/25 against England in Bengaluru last year, was named as Twenty20 International performance of the year.
Chahal was named Player of the Match and Player of the Series for his performance -- the best by an Indian bowler in T20I history, and the third-best of all time.
He is behind only Sri Lanka's Ajantha Mendis, who took 6/8 and 6/16 against Zimbabwe and Australia respectively.
Afghanistan's Rashid Khan was adjudged ICC Associate Cricketer of the Year after taking 60 wickets in 2017 -- a record for an associate player in a calendar year -- and 43 in ODIs, also a record.