A typed list is a typed class, so can only be created through code generation (either in memory through code dom or through a code generator).
For lists it's indeed sometimes necessary to join a few tables to get the columns you want. Typed lists are there to design these in teh designer, however you can also create them in code using the dynamic list technique, as described in the typedlist/view section of the documentation. These aren't typed, but can help you when you don't want to go into the designer, generate code etc. but just want a list with a few columns from, say 2 or 3 entities.