The 27-year-old South Africa-born player was left with vision problems after breaking his nose and damaging his cheekbone while batting in a County Championship match against Northamptonshire in July last year.
"Having gone through that experience of my eye injury and everything it entailed, I feel mentally I will never again be the player that I was," Kieswetter said in a statement on the Somerset website.
"I have had a terrific career, with plenty of ups and occasional downs, and I am calling time on my career and walking away with no regrets."
In first-class cricket and list A cricket, he averaged just under 40 with the bat, while his average in Twenty20 was just under 32. Behind the stumps he claimed 308 catches and 11 stumpings.
More From This Section
He scored 497 runs in the domestic T20 Blast in 2014 and 419 runs in the County Championship prior to suffering his injury at Wantage Road, when a bouncer went through his helmet grille and struck him in the face.
"This is sad news for all concerned," said Somerset director of cricket Matt Maynard.
"His record speaks for itself and the game will miss him. I would have loved to have worked with him this year, but it just wasn't to be."
Kieswetter, who has a Scottish mother, made his Somerset debut in 2007.
He played his first game for England in 2010 and starred in their victory over Australia in that year's Twenty20 World Cup final in the West Indies, scoring 63 runs and being named man of the match.