Taken from http://comments.gmane.org/gmane.comp.lang.erlang.general/15718 with minor fix:
reload_config(AppNames, ConfigFile) ->
{ok, [Config]} = file:consult(ConfigFile),
Apps = [{application, A, element(2,application:get_all_key(A))}
|| {A,_,_} <- application:which_applications()],
application_controller:change_application_data(Apps,Config).