Hearthstone has 2 play modes and both of them can be played for free but many players will want to spend more more.
In Constructed mode you choose cards from your collection. It's perfectly possible to put together cards and make a perfectly reasonable deck. What's more the game's matchmaking system will rank you put you in with players of comparable power so all spending money will do is move you from a rank where you win half your games to a different, higher, rank where you win half your games. The main reason to invest real money if you mostly play Constructed is so you can try out different combinations.
To some extent you can build powerful decks even without investing. I decided that the first deck I would go for would be the warlock murloc deck. You get the legendary murloc for free if you get one of each of the other murlocs - it costs 700 dust to do this which is within reach of a starter player not spending any money. (I ruthlessly disenchanted my commons to get enough).
Still it's nice to have a more solid card collection and it's fun messing around with different deck styles and so on.
Constructed players can buy a pack for 100 gold or do an
arena run which will normally pay a pack + 30 gold + a small amount of
dust unless you have a good run (which isn't very likely if you don't
practice arena intensively).
The other play mode is Arena. Arena charges an entry fee and awards you a pack of cards plus some random loot. The fee is either 150 gold or £1.49 ($1.99 in the USA). To finance yourself in gold you either need to be so successful in the arena that you usually win. This is known as "going infinite."
I'm going to be brutally honest - you probably won't be able to go infinite. Here's some data on gold prizes for arena runs, collected by redditor /u/chauchih. Note that 1-3, 2-3, 3-3 and 4-3 all pay about 30 gold - that's where most people will end up most of the time. In fact if everyone got average results we'd always get 3-3 runs - 3 wins 3 losses. With considerable random factors at play in arena Hearthstone most players will tend to the average. Chauchih notes his average is 66% and that's still not enough to go infinite. Top top players like Trump can go infinite, but even Trump has a win ratio around 74%. So all players are clustered by the game design towards the middle, and the middle pays 30 gold, maybe 50-100 gold if you're really doing well.
So for arena players you need to either pay real money or grind gold in Constructed mode and by doing daily quests. New players can take advantage of a ton of one-off quest rewards which will give you hundreds of gold, enough dust for a rare (more or less) and a couple of specific bonus cards - a parrot and a murloc.
The daily quests are very short and pay 40 gold, which is an arena entry every three and a half days. Grinding gold pays 10 gold per 3 wins, or 45 wins per arena entry. Of course in practice, if you're an average player, past the newbie bonus quests you'll get some gold from your arena results, some from the dailies and you won't have to grind such a large number of wins each time.
Now you will probably have to play 2 games per win. This is because it's a matchmaking system that sorts players into bands. If you were to be winning 75% of your games you'd be moved up to play against tougher opponents. So - unless you're in the top 1% and win all the time or the bottom 1% and lose all the time - you'll end up winning about 50% of your Constructed games.
You don't get any gold for arranged games against friends although they're a lot of fun.
Personally I put £60 on my bnet account, I also inherited £3 from the Diablo 3 real money auction house. So until they shut that down that's another way to play for your arena runs - you could grind in Diablo 3. I don't think that's much fun though or that there are many shoppers so I wouldn't recommend that.
I do caution people to think ahead and budget. It would be very very easy to pour money into this game without really realising it.
Good luck and have fun!