We were going to do the train, but due to scheduling, we had to give that up...not enough time. It is a tad on the expensive side, but it was our 25th anniversary, so we were ready to splurge.
Comair, which is a subsidiary of British Airways, flies from Capetown to Johannesburg. I'm sure SAA does too. Either of these at full price would be way cheaper than the train, anyway.
We used a travel agency in Capetown to book our trip from Johannesburg to Sun City and back. They were very helpful and we did everything by email and fax. I would use them again next time I go to South Africa.
Their website is:
www.go2africa.com.