It is one of the over 250 new features of the World's Most Advanced Operating System called Resume.
When choosing Restart, Sleep or Shutdown there is a checkbox you can uncheck to prevent the apps from launching.
Also in System Preferences > General there is a hard-to-find checkbox under "Number of recent items" you can turn off.
If you want to turn it off on a per app basis, (TextEdit is by example, replace TextEdit with the name of the app)
Launch Terminal and copy/paste this at the prompt...
defaults write com.apple.TextEdit NSQuitAlwaysKeepsWindows -bool false
Press return.
To turn off Resume globally...
chflags uchg ~/Library/"Saved Application State"
Press return
The reverse of the first one is to replace false with true.
The reverse of the second one is
chflags nouchg ~/Library/"Saved Application State"