How can I create a custom view other than content types?
You need to implement hook_views_data to tell Views about your tables and how the data in your tables relates to other tables defined to Views (if it does).  Here's a good tutorial to get you started:
http://www.grasmash.com/article/demystifying-views-api-developers-guide-integrating-views

Depending on the nature of your data, you may, alternatively, consider defining your custom data as a custom entity type.  If you do that through the Entity API module, then it will provide Views integration "for free".