Where you go to obtain an ISBN will depend on what country you are in: in the US, Bowker is the official ISBN agency. For other countries, check the International ISBN site. Many retailers will not require you to have an ISBN—Amazon, for example, has their own identifier for ebooks. Gramps's answer goes into more detail about which retailers do or do not require ISBNs, so I won't go into that.
When you ask about steps to take before contacting a publisher, I assume that you mean the retailer (such as Amazon, Google, iBooks, etc), as you say that you are intending to self-publish. Before contacting the retailer, it's a good idea to make sure that you have all the information you'll need. That information will include:
- Title
- Author's name
- cover (in .jpg format)
- description (the back cover copy works fine for this)
- a list of categories the book falls into (most retailers use BISAC codes for this)
- ISBN (if you're using them)
- price
- target audience age range
- copyright info
- scope of rights (if you're publishing something you've written yourself, this will be world rights unless you've sold or given away those rights)
You'll also need some financial information, so that you can get paid when your book sells:
- Bank info (routing number, account number, bank address)
- Credit card information. Some retailers require this so that they can charge you for any returns they get, if your sales in a given period don't cover the returns
- Tax information: a social security number or EIN as appropriate.
If you go through a traditional publisher rather than self-publishing, the publisher should take care of all the related costs (editing, book design, cover design, ISBNs, marketing, and so on). "Publishers" who charge for these services are more often scams than anything else, seeking to relieve authors of excess money. For more details about the types of predatory "publishers" out there, check out Preditors and Editors.