In general market(fiat), IPO(Initial Public Offering) is the best way to gather/raise the money for particular startup. ICO(Initial Coin Offering ) is Similar to IPO but it's in crypto market. Here, Investor is provided with coin/token instead of share in normal market.
In IPO, investor have to pay fiat. In return they are provided with certain share of the company. Whereas in ICO, investor can pay with crypto like BTC/ETH, in return they are provided with tokens/coin of that particular company.
IPOs are oriented only to banks. For filling the IPO, individual must have an bank account associated with it. On the other hand, ICOs are opened for anyone all over the world. All you need to have is a currency of Bitcoin or Ether which you will convert into the token of the particular ICO. In simple word, IPO is centralized way to raise funds for projects. While ICO is decentralized way to raise fund for particular project.