Multiple approaches can be made, none of which are mutually exclusive:
Use free analytics tools to research the popularity of keywords relevant to your niche, then build topics around high-performance keywords with which you're comfortable. Keep in mind that more popular keywords are likely to be more competitive - you're not immediately going to soar to the top of the SERPs (search engine results pages) simply because you write a great post on a super-common topic.
Use a free or paid SEO tool or backend plugin to optimize your titles (Yoast is a popular WordPress plugin; this is not an endorsement, as there are plenty of others). These tools won't generate topics for you, but they can help posts take shape if you're stuck.
Keep a list of potential topics
The world is your topic generator. Whenever inspiration strikes, jot down a few notes so you'll remember. I personally use my email suite's reminders feature, and somehow, it works. Go through your list periodically and select topics that you'll actually write about, based on their perceived relevance to your audience and their alignment with your near, medium, and long-term business goals.
Ask for feedback and input from your audience
If your readership is engaged already, ask them (via social media, your blog's comments, etc) for topics they want to read about. You'll get some off-the-wall feedback, to be sure, but you're likely to recieve some valuable input as well.
Look at others. It's not a crime to research your competitors
Look for ideas on competing (or complementary) blogs and websites. Check community resources like the question-and-answer boards. If you think you can produce better answers, submit brief feedback, then post more in-depth responses to your blog.