I always like talks on different subjects. The real hard thing about talking to a specialized community is keeping the detail level high and the scope narrow. What's the point of talking to a bunch of .NET programmers about the benefits of Polymorphism? It always kills me when I go to a meeting on a particular subject and get the most rudimentary explanation and examples. Its a waste of time.
MSDN webcasts have a level system that describes the complexity of the subject. Most are level 100 or 200. If you're dealing with a group of professionals, your talks should always be at level 600-1000.
In addition to talking about technical subjects, another big area to hit is professional development. How do you make yourself a more valuable programmer? These types of talks are great for bringing in other people, such as management, sales, customers, etc. People who you normally only associate with under protest, and who you typically curse under your breath when they walk by. A user group forum is a great way to bring these people together with developers in a pseudo-group therapy like setting.
Also, donuts.