Here are some random tips:
When you are weaving your plot ideas together, make sure that everyone is connected somehow. I don't know if you're familiar with the six degrees of Kevin Bacon theory, but basically if you have a campaign setting where each NPC the party meets is somehow involved with another NPC (directly or indirectly) it can be very interesting. PCs will feel like they are engaged with your setting and become a part of this web of relationships.
Give each NPC a name. Keep a list of random NPC names so that each can be memorable. Make sure each one has an individual and complex personality, instead of just naming them "Bob" or making them all either a grumpy merchant or a beautiful seductress. If you can, try to use different voices for each one so that PCs can differentiate them easily. Using dramatics in your game can also help make it feel like the players have entered another world. Your world.
In other words, you don't necessarily need a fantastical world full of exploding magic and great terrible monsters around every corner to make a memorable game. In my opinion, it's not so much the concepts but rather how you carry them out. Many players will be more involved and engaged in plots and NPCs rather than "neat" ideas. Interesting concepts are always welcome, but too much can de-sensitize your players. Like spice, use them sparingly.
Again, I would suggest trying to read up as many published adventures as possible before you run this game. These days a lot of people seem apathetic to published adventures and that's maybe why I see so many bad games being run out there. But you've got to learn how an adventure is run before you run one yourself.
Also, history and reference books are good sources of inspiration (and you might actually learn something like when were windmills invented, etc!) I find these resources great learning tools and helpful idea sources.
To answer your specific questions:
1) The opportunity to be heros. To save the day, even if it means sacrificing their characters in the end.
Establish an interesting and engaging plot-line that gets them involved in the affairs of the realm. Perhaps they must choose which side of a war they will support and by making the right choice they save the kingdom.
2) To feel like they are not being railroaded.
Create a world that is open-ended in which the PCs can roam freely wherever they want. If you design an encounter where there is a monster inside of a cave that holds a special magic item, but the PCs decide not to go in there, make sure you have enough material to cover so that they can go somewhere else. Having enough options keep you from forcing your players down a specific path.
3) The opportunity to be 'bad asses'....Instead of the average joe.
How about giving each of them specific unique powers? For example, you can give the rogue the ability to sneak attack for double damage once per day or give the fighter the ability to bind wounds (bandage injuries for 1d6 points of damage, a two-round action) once per feat attained. Don't let them become generic characters. You can do this without necessarily playing prestige classes. Be creative, but always remember game balance.
Hope some of this is helpful!
