GoDaddy or Namecheap - both are great for domains buying.
Hostgator - good for hosting.
PS: You should search for coupon codes to get discount on godaddy.
Coupon Code 'WOW266' (without the quotes) gives 35% discount on any new products.
To choose great domain name, read this:
12 tips to help users select a great domain name:
Brainstorm 5 Top Keywords
When you first begin your domain name search, it helps to have 5 terms or phrases in mind that best describe the domain you're seeking. For example, if you're launching a mortgage related domain, you might start with words like "mortage, finance, home equity, interest rate, house payment" then play around until you can find a good match.
Make the Domain Unique
Having your website confused with a popular site already owned by someone else is a recipe for disaster. Thus, I never choose domains that are simply the plural, hyphenated or misspelled version of an already established domain.
Only Choose Dot-Com Available Domains (as far as possible)
If you're not concerned with type-in traffic, branding or name recognition, you don't need to worry about this one. However, if you're at all serious about building a successful website over the long-term, you should be worried about all of these elements, and while directing traffic to a .net or .org (as SEOmoz does) is fine, owning and 301'ing the .com is critical. With the exception of the very tech-savvy, most people who use the web still make the automatic assumption that .com is all that's out there - don't make the mistake of locking out or losing traffic to these folks.
Make it Easy to Type
If a domain name requires considerable attention to type correctly, due to spelling, length or the use of un-memorable words or sounds, you've lost a good portion of your branding and marketing value. I've even heard usability folks toute the value of having the letters include easy-to-type letters (which I interpret as avoiding "q," "z," "x," "c," and "p").
Make it Easy to Remember
Remember that word-of-mouth and SERPs dominance marketing (where your domain consistently comes up for industry-related searches) both rely on the ease with which the domain can be called to mind. You don't want to be the company with the terrific website that no one can ever remember to tell their friends about because they can't remember the domain name.
Keep the Name as Short as Possible
Short names are easy to type and easy to remember (the previous two rules). They also allow for more characters in the URL in the SERPs and a better fit on business cards and other offline media.
Create and Fulfill Expectations
When someone hears about your domain name for the first time, they should be able to instantly and accurately guess at the type of content that might be found there. That's why I love domain names like Hotmail.com, CareerBuilder.com, AutoTrader.com and WebMD.com. Domains like Monster.com, Amazon.com and Zillow.com (whom I usually praise) required far more branding because of their un-intuitive names.
Avoid Copyright Infringement
This is a mistake that isn't made too often, but can kill a great domain and a great company when it does. To be sure you're not infringing on anyone's copyright with your site's name, visit copyright.gov and search before you buy.
Set Yourself Apart with a Brand
Using a unique moniker is a great way to build additional value with your domain name. A "brand" is more than just a combination of words, which is why names like mortgageforyourhome.com or shoesandboots.com aren't as compelling as branded names like bankrate.com or lendingtree.com. SEOmoz itself is a good example - "SEO" does a good job of explaining the industry we're in and creating expectations, while "moz" gives a web association, and an association with being free, open, and community-driven.
Reject Hyphens and Numbers
Both hyphens and numbers make it hard to give your domain name verbally and falls down on being easy to remember or type. I'd suggest not using spelled-out or roman numerals in domains, as both can be confusing and mistaken for the other.
Don't Follow the Latest Trends
Website names that rely on odd mis-spellings (like many Web 2.0 style sites), multiple hyphens (like the SEO-optimized domains of the early 2000's), or uninspiring short adjectives (like "top...x," "best...x," "hot...x") aren't always the best choice. This isn't a hard and fast rule, but in the world of naming conventions in general, if everyone else is doing it, that doesn't mean it's a surefire strategy. Just look at all the people who named their businesses "AAA... x" over the last 50 years to be first in the phone book; how many Fortune 2000's are named "AAA company?"
Use an Ajax Domain Selection Tool
Websites like Domjax make it easy to determine availability of a domain name - just remember that you don't have to buy through these services. You can find a name you like that's available, then go to your registrar of choice.
This article was related and necessary. I have edited tiny bits.
Avoid Godaddy, as they are the greediest company, next to Google, online. They suck you in with new product sales and then hit you with upsells everywhere. I've never seen anything like it. Their constant email spam trying to get you to buy something is exhausting.
Also, they keep raising their prices and are FAR more expensive than either Name or Namecheap and now, just to add to the insult, they no longer issue discount codes for renewals, so you're FORCED to pay full price.
I had over 100 domains there, but that number is shrinking as I take my business elsewhere. Be careful with them.