There are mechanisms for doing real-time video capture, yes. AFAIK VGA streams are rarely used in this way.
If you have an analog signal (such as BNC or VGA) you would be looking for a "video capture card", which digitizes the analog stream. How you import this into Matlab will depend on the manufacturer of the card - usually, the card will ship with an SDK and include an API offered in C, so you can build a simple mex file which collects a frame from their driver on a fixed interval.
However, unless your application is tied in to a particular camera model, or requires particular camera characteristics (low light, high frame rate, for example) that are only available from a particular class of analog camera, I think it's much easier these days to start with a camera with a digital interface. Frames from many webcams can be captured using the Image Acquisition toolbox. Standard video streams (over firewire, USB) are accessible through generic OS-specific interfaces, which allows you to use much higher grade cameras (e.g. consumer DV or HD camcorders). Tools to access these interfaces from Matlab most likely already exist (see URL, below, for instance). Special purpose cameras (e.g. high speed or high resolution) typically provide their own API, and allow very simple frame import via a mex file that calls their API.
Note that for real-time capture, the HDMI interface (becoming standard on consumer HD cameras) is not currently suitable owing to high lag and poor real-time OS support. I speak from bitter experience. If you need not-so-great image quality and extremely low latency (or fairly high frame rate) I can't recommend enough the pairing of the PS3 Eye camera and the CLEye interface (google this). I am using this myself and it's top dog.