Hi Veng Im,
What's meant by "a good speaker" you asked? A good speaker of English? or what?
Well, let's talk about a good speaker a bit.
Personally, I think a good speaker can clearly state his ideas to his audience. A good speaker can make a change in the audience's thinking.
So, how to be a good speaker? You need to practice. Find a good speaker as a sample for yourself to follow.
Whereas, to be a good speaker of English, you are supposed to speak English fluently, with smooth procedures of delivering your messages in English(the flow of ideas). You need to learn from your mistakes when you practice. Other included factors are good use of vocabulary, grammar and structures; pronunication (stress, tone, intonation); and no breakdown of ideas.
What do you think?

P.S. I'm sure you also have ideas about this.
