When building speaking activities, it's important to remember to work from small to large. This, I think, remains true for any level of student.
At the lower levels, for example, students should work with controlled activities at the start. Drills (small) introduce the language, and give everyone the chance to reinforce and automatize the target material of the lesson. But you must move beyond drills to keep everyone interested and engaged. Interactive activities such as Q&A (large, open-ended) work well, so have students move onto interviewing as many classmates as possible in x-amount of time.
At the upper levels, you are looking to guide the students' ideas. If you ask the class to discuss war or politics, for example, they can't. You need to build up to that discussion by brainstorming words or ideas on said topic (small). Then offer a few general questions, moving to specifics throughout the class. At the end, bring all the ideas together in the form of a discussion or debate (large).
Here are some ides I've posted on my website for upper-level ESL students. The section is called Skill Builders: Speaking, which is pretty self-explanatory.
1) Pair up students to talk about one question for several minutes. Students next switch pairs, and report on the previous conversation, whether they agree or disagree with their first partner's opinions, and why. Students may offer additional information to the second conversation.
2) As a pre-step to a larger debate, assign several questions for students to talk about in pairs or groups. Next face the students off against one another for short rounds of debate.
3) Select a yes/no question for debate. Allot two or three minutes for students to think of ideas, take notes, or check dictionaries. Pair them up for a quick debate. Don't forget to assign who will be for and who will be against the idea.