Block are objects which are used to render view in magento. Magento follows MVC pattern very well and has design a good framework to follow that pattern. Block and Templates take care of the View part of the framework. Even in view part, its always good practice to have separation of logic between view html and view logic (most MVC php framework do this). So the view templates (.phtml files) are only there to take care of html logic while block take of php related view logic.