With Upstart the service configuration lies in files in /etc/init/. For example ssh is controlled using a config file /etc/init/ssh.conf
This file specifies the "events" which will prompt Upstart to start the "job".
To prevent a service from starting automatically, one of several methods can be used:
a) Rename the service.conf file so that it does not end with .conf
b) Comment out the "start on" line from the service.conf file.
In newer versions of upstart (since v1.3 at least) you can also override the start on line using a service.override file, so you could use:
# echo manual > /etc/init/service.override
Lastly you may also add the keyword "manual" to the end of the service's configuration file, eg via:
# echo manual >> /etc/init/service.conf
Note that this does not "stop" the running service, it just prevents it from starting automatically. While set for "manual" startup you control the service using initctl, eg to stop and start the SSH daemon:
# initctl stop ssh
# initctl start ssh
Arguably the best documentation for Upstart is at http://upstart.ubuntu.com/cookbook/
Section 11.44 covers "disabling a service from auto-starting, here: http://upstart.ubuntu.com/cookbook/#disabling-a-job-from-automatically-starting