Canada should give food and medical aid to all countries in need, regardless of politics.
But Canada should only give economic and development aid to countries that are moving forward towards becoming more peaceful and just societies. If the country is a brutal dictatorship which oppresses its own people or threatens other states, then Canada should not support that country with economic and development aid.
For example:
Zimbabwe appears headed toward more violence and injustice. Canada should not support this regime. Canada would effectively be supporting injustice and violence.
Ghana on the other hand is peaceful and appears headed toward becoming a more just society. Canada should view its support of Ghana as a good longterm investment.
Canada should also base its aid on need and which country has the potential to improve the most. Liberia until recently was embroiled in a brutal civil war. But today it has a fragile peace. Unless Canada and other nations take this opportunity to help this country develop economically and establish civil institutions, Liberia may soon find itself back in another civil war. If we don't help Liberia now in its time of need then we are partly responsible for missing an opportunity to stabilize Liberia into a peaceful and just society.
http://www.csmonitor.com/2006/0117/p09s02-coop.html
Canada should not support nations which use violence internally or externally. But we can give these nations food and medicine.