Yes, it is absolutely possible.
The Ubuntu Way
The "Ubuntu Way" (which is also the Debian way) would be to set up a local apt
repository, and configure your client systems to get their updates from there.
The Ask Ubuntu question above (which Deer Hunter graciously provided for me to steal the link to) has a pretty good description of what's involved, and you can also find a number of tutorials on setting up a local apt server
if you ask Google (many will be for Debian, but the process is effectively identical for Ubuntu except you'll get your packages from the Ubuntu project instead of Debian).
If you go this route many companies create one "meta package" that lists everything that should be installed on their systems, and then install that on each machine before they put it in the field. This makes it easier to make sure your systems are relatively consistent.
The Modern Unix Way
The "Modern Unix Way" is to use a configuration management tool to manage your client machines (Puppet and Chef are very popular, I use radmind because I have a history with it).
Configuration Management tools let you do more than just install software, but they certainly make that task much easier as well.
There is more of a learning curve with these tools as opposed to a local apt
repository, but you might find the additional functionality you gain to be worth the effort, particularly if you're managing a lot of machines.
Given the choice I would deploy a configuration management system (possibly in conjunction with a local apt
server if you want to minimize external bandwidth utilization).