The short answer is yes. The longer answer is, it can be done more then one way.
I'd probably opt for a bash script and wrap it in a application bundle using Platypus, although you can use a Run Shell Script action in Automator too.
In Automator you might want to try the Watch Me Do action, although that will be slower then just a bash script.
Note that some things you mentioned may not be able to be bash scripted, can't say for sure because I do not use Tower or MAMP, although the others are bash scriptable
I can't give a complete answer as I do not use Tower or MAMP however for Sublime Text, Terminal and Safari the following works for me.
Note that Sublime Text includes a command line executable
subl within its application bundle. The typical path might be,
/Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl and executing it with
--help will display its internal help information.
The following script example could be used if you can ascertain the commands necessary for Tower and MAMP.
/path/to/subl --project <project>
open -a Terminal /path/to/the/location/I/want
# Tower commands.
# MAMP commands.
open -a Safari http://127.0.0.1