He won 24 caps for South Africa and was part of the squad that won the Rugby World Cup in 2007. His last appearance for the Springboks was in 2011 when he was a second-half substitute against Wales.
Ulster have reached the quarter-final of the Heineken Cup in each of the four seasons that Muller has been at Ravenhill.
He led the team in the final of the Heineken Cup in 2012 and the RaboDirect PRO12 final last season, with Ulster losing both games to inter-provincial rivals Leinster.
Commenting on the decision, Johann Muller, said: "I still believe that I am playing well enough but I just feel from my body's point of view that the time is right to step away.
"I have enjoyed my time at Ulster so much. The last four years have possibly been the best of my rugby career. My family has been so happy here and we have been made to feel really welcome in Belfast.
"There is still a lot of rugby to be played. Nothing has changed for me. Every time that I take to the field I want to win. I am excited about these last four months, about where we are as a team and what we are capable of achieving."
Ulster's Director of Rugby, David Humphreys, added: "Johann has been an outstanding player for Ulster Rugby. He is everything you want from a captain - he leads from the front, he is exceptionally committed and he is an inspiration to everyone else around him.
"I remember very clearly sitting with him in Durban, outlining the vision that I had for the team and for Ulster Rugby. He has been the catalyst for the huge strides that we have made in recent years and has made an immense contribution to the Prov ince, both on and off the pitch.
"I know that over the next four months that he will be more determined than ever to help deliver success to Ulster and that he will be aiming to end his career on a high."