With the July SDK update, the concept of multiple roles has been added. This is visualized in Visual Studio through Wizards or through configuration.
You can use the multi-role support to break out logically different functions in your applications. You would typically do this when you want the role to act as a unit of scale. For instance, if I have a worker role today that performs 10 different functions in the application, it may be the case that only two of the functions are actually heavily used. Instead of scaling a single role to perform all the functions faster, it might make more sense to break apart the two functions that need to scale independently into another role and control that separately.
Multi-role support should not be confused with supporting multiple roles per instance. For instance, if you had two web roles, you could not use multi-role support to have two URIs like: http://myapp.cloudapp.net/app1 and http://myapp.cloudapp.net/app2. This is also not a way to get virtual directories. Instead, if you two websites (e.g. a public one and an admin one), you could have two roles and they would listen on two different ports (i.e. http://myapp.cloudapp.net and http://myapp.cloudapp.net:8080). Notice that the URI is still the same, but only the port has changed.
You can get more details about the feature here.