It is mainly theological sources that say 586, and this is largely based on confusion surrounding the Babylonian interpolation at Jermiah 52:28-30. I have considered all of this in some detail and determined that 587 is the correct year. 586 does not work.
2 Kings 25:1 indicates that the siege began in the 10th month of Zedekiah's 9th year (around January); 2 Kings 32:1 refers to the siege beginning in Nebuchadnezzar's 18th year, which was 588 BCE. Jeremiah 52:12-14 places the destruction of the temple on or shortly after the 10th day of the 5th month (corelating to the beginning of August) of 587 BCE, being the 19th year of Nebuchadnezzar's reign. Nebuchadnezzar's reign began in 605 BCE (Jeremiah did not use the accession-year system), making his 19th year 587 BCE, not 586.
Jeremiah, in Jerusalem, did not use the accession-year system, meaning that by his reckoning, the years of Nebuchadnezzar's reign start from 605BC, not 604BC. This is confirmed by the fact that Daniel 1:1 refers to Jehoiakim's third year, whereas Jeremiah 25:1 refers to the same year as Jehoiakim's fourth year.
Some have been confused by ambiguity of Jeremiah chapter 52:28-30 which does refer to years of Nebuchadnezzar using the accession-year system as per Babylonian custom. The key to resolving this ambiguity is that Jeremiah 51:64 indicates that Jeremiah didn't actually write those verses. (The rest of Jeremiah chapter 52 is a copy of 2 Kings 24:18 to 25:21,27-30, but verses 28-30 are an interpolation from Babylonian sources.) This completely harmonizes chapter 52's references to 7th and 18th years with other references to 8th and 19th years mentioned elsewhere in 2 Kings and Jeremiah.