Most importantly, plant indigenous plants as far as possible. We've got a large garden, most of it only indigenous and then a mini-orchard of exotic fruit trees such as orange, apricot, plum, lemon, naartjie, olive etc. Only the white-eyes visit the exotic fruit trees most of the year (to catch insects!

). When the guava is in fruit, we'll get some green pigeons and mouse birds visiting it, but that is a short time of the year. The indigenous trees are much better for attracting bird life.
Now some specifics:
Karee trees (e.g. Rhus/Searsia pendulina (white karee), Rhus/Searsia lancea ("gewone" karee), Rhus/Searsia leptodictya (mountain karee) and other species of Rhus/Searsia) are always a hit with the birdies (fruit and insect eaters).
Jacket plum (Pappea capensis)
The various wild raisins (Grewia species)
Puzzle bush (Ehretia rigida)
Acacias (if your garden is large enough, a paperbark thorn (Acacia sieberiana) is a great option that creates a good habitat for many birds (and it does not take that long for it to grow to a decent size), a smaller garden will benefit from sweet thorn (Acacia karroo), or various other smaller thorn trees that are all good for attracting birds.
All kinds of (especially) aloes and red hot pokers (Kniphofia species) are great for attracting sunbirds, and when the aloes are not in flower, they will catch insects in the karee and thorn trees
Trees with loose bark will attract scimitar bills (wood hoopoes) who'll dig under the bark for insects, and tree with many flowers such as the bush elder (Nuxia floribunda) will attract lots of insects that will in turn attract many insect eating birds.
A large open lawn will attract African hoopoe and wagtails, but most birds (e.g. southern boubou, olive or karoo thrush, cape robin, weavers, and widow birds feel safer and prefer a less neat garden where there is lots of shrubs and undergrowth under the trees where the can hide and search for food.
If you have to cut down an unsuitable exotic tree, leave the stumps lying here and there throughout the garden, it will slowly rot and attract a variety of insects and then insect eating birds.
We've tried planting a meadow of a mix of indigenous grasses and indigenous bulbs, but with uneven success. The seed eaters (widowbirds, weavers, finches, mannikin) seem to prefer feeding at a bird feeder

, but we feed them only from about June/July until the veld grasses are in seed again. Last year, just about all the natural veld in our area burnt down due to purposely and accidentally set veld fires, and we had to literally spend thousands over a few months trying to save the local seed eaters from dying out or moving away

, it was so bad that even grey go-away birds tried to eat the seed in the feeders, causing us to also have to set out fruit and mince for the fruit and insect eaters

. I hope the idiots who set all the fires last year will just stay away from matches this year

- maybe they will be more careful if they are fined appropriately
Water is an important resource in a dry country like South Africa and will attract many birds to a garden. However, deep ponds with steep sides (e.g. Koi ponds), and gushing fountains or fast moving water features will be inappropriate for most garden birds. They will be in danger of drowning from most of the above and will stay away. Very shallow ponds, that gradually deepens toward the middle and thus mimics natural ponds, are ideal. If not possible, shallow (flat) bowls/plates (much shallower than dog and cat drinking bowls) placed around the garden and filled regularly with water will also be good. It is a good idea to place a stone or two in each bowl/plate to give the little birdies a place to sit safely when drinking water. One resourceful "water feature" that I've seen was simply a shallow plate (like those one put under flower pots) placed underneath a very slowly dripping garden tap (the tap dripped just fast enough to ensure the plate stays filled with water without overflowing!) - the birds loved it!
With many/most of the above in place, we recorded at least a 130 species of birds (not all at the same time!) in our suburban garden over a period of about 10 to 15 years